Seal 下载失败排查指南:yt-dlp 版本不兼容的定位与修复
【免费下载链接】Seal🦭 Video/Audio Downloader for Android, based on yt-dlp项目地址: https://gitcode.com/gh_mirrors/se/Seal
日志弹出Could not fetch video info的那一刻,先别急着重试。Seal 是基于 yt-dlp 的 Android 下载器,解析、选格式、落盘全部交给这个引擎,所以 Seal 下载失败与 yt-dlp 版本不兼容往往是同一个问题。本文覆盖三件事:快速判读故障信号、三种引擎更新与回退路径、疑难报错与高级参数配置。
故障信号速查:先看日志,再查版本
动手之前,先确认自己属于哪一类问题。
报错文本对照
| 信号 | 含义 | 下一步 |
|---|---|---|
Could not fetch video info | 解析失败,常见于引擎版本过旧或站点反爬 | 核对引擎版本,必要时换 Nightly 通道 |
Could not download file | 解析成功但下载中断 | 打开任务日志,查 ffmpeg 相关字样与网络状况 |
bad local file header | 引擎文件损坏 | 设置页再执行一次"更新 yt-dlp"即可 |
日志出现Unsupported URL/410 Gone | 站点接口已变,旧引擎跟不上了 | 升级引擎或改用自定义命令模板 |
三个检查入口
- 看引擎版本:设置 → 故障排查页(TroubleshootingPage.kt)有 "Yt-dlp version" 条目;显示为空或明显落后于 CHANGELOG.md 同期版本时,说明引擎需要更新。
- 看日志:对失败任务点"查看日志",按上表关键词检索;任务日志页对应 TaskLogPage.kt。
- 看版本报告:"关于"页(AboutPage.kt)的 App.getVersionReport() 会汇总应用版本、ABI 等信息,提交问题前先复制。
修复路径:三种方式按场景选
自动更新:通道与周期
Seal 把引擎更新入口收敛在一个对话框里(YtdlpUpdateDialog.kt):
- 设置 → 常规 → "更新 yt-dlp"。
- 选择通道:Stable(稳定版)或 Nightly(夜间构建)。
- 自动更新设为关闭、每天、每周或每月,默认每周(PreferenceUtil.kt 中 DEFAULT_INTERVAL 即为每周一刷)。
- 每次打开应用时,YtdlpUpdater.kt 会在空闲且网络可用的情况下按周期自动执行 UpdateUtil.kt 中的更新流程;更新成功后版本号写入本地,故障排查页即可看到。
⚠️ 如果恰好在更新过程中下载过内容,引擎文件可能损坏(
bad local file header),这是 CHANGELOG.md 中 v1.12.1 记录的已知问题,再执行一次更新就能修复。
损坏与重导:再执行一次更新
没有单独的文件导入入口,引擎的"重新导入"就是重新执行一次更新。Stable 通道拉取 yt-dlp 的正式 release,Nightly 通道拉取 yt-dlp-nightly-builds 的最新构建(见 UpdateUtil.kt 中的来源地址)。所以引擎文件异常时,最短路径就是设置里点一次"更新 yt-dlp"。
版本锁定:切回 Stable 想固定使用稳定线时,把通道切回 Stable,自动更新保持每周。这样引擎只跟随 yt-dlp 的正式发布,不会吃到夜间的临时构建,适合对稳定性要求高的场景。
💡 通道切换后立即生效,不需要重装应用;切换后建议手动点一次更新,让当前引擎文件和通道对齐。
按场景选型:该用哪个引擎版本
| 使用场景 | 引擎选择 | 说明 |
|---|---|---|
| 日常下载、求稳 | Stable 通道 | 只跟随 yt-dlp 正式发布 |
| 解析失败、新平台/新格式 | Nightly 通道 | 站点适配修复先进入夜间构建 |
| v1.12.0 及以后新装用户 | Nightly(默认) | v1.12.0 起默认改为 nightly,v1.12.1 起才提供自动更新间隔 |
| 某个 nightly 构建出过问题 | 临时回退 Stable | 等后续修复再切回 Nightly |
里程碑节点(均以 CHANGELOG.md 为准,稳定版共 16 个条目,自 v1.7.3 起记录):
- v1.9.0:新增自动更新 yt-dlp 开关与 Nightly 构建选项。
- v1.12.0:默认改用 nightly 构建,同时引入下载历史导出/导入。
- v1.12.1:新增自动更新间隔,并记录"更新中下载会损坏引擎"的已知问题。
- v1.13.0:youtubedl-android 升级到 v0.16.1。
疑难对照与高级参数
错误现象处理表
| 现象 | 判断依据 | 处理 |
|---|---|---|
| 解析成功但没有音频格式 | 格式列表不完整 | 换 Nightly 通道或再更新一次引擎 |
| 日志提示 ffmpeg 相关缺失 | 合并音视频环节失败 | 检查格式选择,改用不需要合并的单一格式 |
| 1080p 以上格式不可选 | 多为账号/地区限制 | 配置 Cookie(设置 → 网络)或更换来源 |
| 速度明显低于带宽 | 单连接受限 | 开启 aria2c,并把并发线程调到 8–16(上限 24,见 DownloadUtil.kt) |
高级参数配置
内置选项已经覆盖常见需求:--restrict-filenames限制文件名、--embed-chapters默认嵌入章节、开启 aria2c 后自动追加--downloader libaria2c.so(均以 DownloadUtil.kt 为准)。需要更细的控制时,用自定义命令模板:模板里直接写 yt-dlp 参数,例如--downloader libaria2c.so。
⚠️ 自定义命令模式下,大多数图形界面选项会失效,参数以模板内容为准(见 strings.xml 中 custom_command_usage_msg 的说明)。
日常维护三件事
- 保持自动更新开启,周期选每周;追求稳定就用 Stable,追新就用 Nightly。
- 遇到解析失败,先按"故障信号速查"表判断再动版本,不要反复重试同一个失败任务。
- 反馈问题前,从"关于"页复制版本报告,附上 yt-dlp 版本号与任务日志。
项目文档可直接看仓库内的 CHANGELOG.md 与 CONTRIBUTING.md,多语言翻译稿在 translations/ 目录。
【免费下载链接】Seal🦭 Video/Audio Downloader for Android, based on yt-dlp项目地址: https://gitcode.com/gh_mirrors/se/Seal
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考