Seal 参数模板实战:用 yt-dlp 自定义命令管理批量下载与字幕归档

发布时间:2026/10/29 19:46:39
Seal 参数模板实战:用 yt-dlp 自定义命令管理批量下载与字幕归档

Seal 参数模板实战:用 yt-dlp 自定义命令管理批量下载与字幕归档

【免费下载链接】Seal🦭 Video/Audio Downloader for Android, based on yt-dlp项目地址: https://gitcode.com/gh_mirrors/se/Seal

给一组外语教学视频批量添加中文字幕、按课程文件夹归档,再顺手把封面写进文件——这些需求靠下载面板里零散的勾选项根本拼不出来。Seal 是 Android 平台上基于 yt-dlp 的音视频下载器,它的「yt-dlp 参数模板」功能允许你把一组命令行参数保存为可复用的文本块,之后每个新链接直接套用同一套规则。

功能定位

参数模板本质上是一份保存后的 yt-dlp 选项文件:你写好的参数在每次下载时由 Seal 写入临时配置,再通过--config-locations传给 yt-dlp 进程,效果等同于在终端里敲完一长串参数再回车。它适合下载格式固定、批量操作频繁、或需要嵌入字幕与封面等 GUI 选项尚未覆盖的用户。

准备工作

建议保持应用为最新版(当前仓库版本 2.0.0-alpha.5),以确保模板导入导出格式兼容。功能入口有两处:

  • 侧边导航栏:主界面展开侧边栏,点击「自定义命令」进入模板列表页,可新建、编辑、导出、导入模板。
  • 下载对话框:粘贴链接后点击格式选择,在对话框中切换到「使用自定义命令」选项卡并选取模板。

模板列表页顶部有一个「使用自定义命令」总开关,开启后 GUI 中大部分格式选项会被禁用,下载行为完全由模板参数决定。

按需求找参数

yt-dlp 的选项很多,下面按四类常见需求分组,每组列出最实用的参数组合。

画质控制

需求参数效果
取最佳画质并合并音轨-f bestvideo+bestaudio下载最高分辨率流并自动合并
限制最大分辨率 720p--format-sort res:720超过 720p 的流被跳过
仅提取音频-x --audio-format mp3分离音轨并转码为 MP3

字幕与元数据

需求参数效果
下载并嵌入字幕--write-subs --embed-subs字幕文件写入视频容器
指定字幕语言优先级--sub-langs zh-Hans,en优先匹配简体,回退英文
嵌入封面与元数据--embed-thumbnail --add-metadata文件属性携带标题、作者、封面

文件管理

需求参数效果
按上传者分文件夹-o "%(uploader)s/%(title)s.%(ext)s"同一上传者的文件归入同一目录
跳过已下载条目--download-archive archive.txt维护记录文件,重复 URL 自动跳过
文件名只用安全字符--restrict-filenames避免空格和特殊符号,便于跨平台传输

网络环境

需求参数效果
强制使用 IPv4--force-ipv4部分校园网或企业网 IPv6 不通时生效
限制下载速度-r 2M将带宽占用控制在 2 MB/s 以内

从零完成一次配置

第一步:新建模板

在模板列表页底部点击「新建模板」,填入名称(如"教学视频·中文字幕")和参数内容。参数区支持多行,每行写一个选项即可;页面下方的快捷短语芯片可一键追加常用参数,减少手打。

这一步容易踩的坑:模板名称不能为空,否则「完成」按钮保持禁用。参数区留空也能保存,但下载时 yt-dlp 将不读取任何自定义选项,等同于裸跑。

第二步:填写参数

以"教学视频·中文字幕"为例,参数区填入:

-f bestvideo[height<=720]+bestaudio --write-subs --sub-langs zh-Hans,en --embed-subs --embed-thumbnail --add-metadata -o "%(uploader)s/%(title)s.%(ext)s"

每行一个选项,空行和#开头的行被 yt-dlp 当作注释忽略。

这一步容易踩的坑:-o模板中的%(uploader)s等字段是 yt-dlp 输出模板语法,拼错字段名不会报错但文件名会变成空字符串。建议先用单条链接试跑一次,确认输出路径正确后再批量操作。

第三步:选中模板并下载

返回主界面粘贴视频链接(或整页 playlist 链接),点击下载后在弹出对话框中切换到底部「使用自定义命令」选项卡,选中刚才创建的模板,确认开始。Seal 会把模板内容写入配置文件,再调用 yt-dlp 执行下载。

这一步容易踩的坑:若模板里同时写了-P参数指定输出目录,会与设置页中「自定义命令目录」的设定产生冲突。建议只在一处指定路径,避免两者同时生效导致文件落点不符合预期。

第四步:检查下载结果

下载完成后在「自定义命令」任务列表中查看日志,或到存储管理器里确认文件是否按预期命名和归入正确文件夹。首次使用--download-archive时会在应用目录下生成archive.txt,后续同一 URL 自动跳过。

这一步容易踩的坑:若日志出现 "ERROR: unable to extract" 或 "Unsupported URL",通常是 yt-dlp 内核版本过旧不识别新站点,先到设置里更新 yt-dlp 再重试。

模板导出与多设备同步

模板列表页右上角菜单提供「导出到剪贴板」,生成的 JSON 包含全部模板及快捷短语;在另一台设备上点「从剪贴板导入」即可恢复。导出的 JSON 结构如下,可直接复制保存:

{ "templates": [ { "id": 1, "name": "教学视频·中文字幕", "template": "-f bestvideo[height<=720]+bestaudio\n--write-subs\n--sub-langs zh-Hans,en\n--embed-subs\n--embed-thumbnail\n--add-metadata\n-o \"%(uploader)s/%(title)s.%(ext)s\"" } ], "shortcuts": [] }

导入时 Seal 会自动去重:已存在的同名模板不会重复写入,id字段由本地数据库重新分配。

三套现成配方

以下参数可直接粘贴进模板使用,每套附一句适用说明。

播客 / 有声书归档——提取音频并写入 ID3 标签,按作者分文件夹:

-x --audio-format m4a --audio-quality 0 --embed-thumbnail --add-metadata -o "%(uploader)s/%(title)s.%(ext)s"

外语教学视频——限制 720p、嵌入中文字幕和封面,按上传者归档:

-f bestvideo[height<=720]+bestaudio --write-subs --sub-langs zh-Hans,en --embed-subs --embed-thumbnail --add-metadata -o "%(uploader)s/%(title)s.%(ext)s"

Playlist 批量下载——整页抓取、跳过已有条目、按播放列表名建子目录:

--yes-playlist --download-archive archive.txt -o "%(playlist_title)s/%(title)s.%(ext)s"

上手自检清单

  • 应用为最新 release,yt-dlp 内核已更新到对应版本
  • 模板内-o路径字段拼写正确,单条链接试跑后文件落点符合预期
  • 总开关「使用自定义命令」已开启,GUI 格式选项显示为禁用状态
  • --download-archive文件路径可写,批量任务第二次运行时不再重复下载
  • 导出 JSON 已备份,换机或重装后能一键恢复

更多选项说明见 README.md 与 yt-dlp 官方文档;模板执行逻辑可参考 DownloadUtil.kt 中executeCustomCommandTask方法,任务创建流程见 TaskFactory.kt。遇到参数不生效或下载报错,欢迎在仓库 Issues 区提交反馈。

【免费下载链接】Seal🦭 Video/Audio Downloader for Android, based on yt-dlp项目地址: https://gitcode.com/gh_mirrors/se/Seal

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考