yt-dlp 内核覆盖范围 — 超过 1700 个视频站的解析能力
什么是 yt-dlp
yt-dlp 是 youtube-dl 的一个活跃维护分叉。原 youtube-dl 项目在 2021 年左右因官方仓库的维护节奏变慢(GitHub 上 PR 和 issue 大量积压),社区 fork 出 yt-dlp,由更活跃的团队持续更新。
Seal 的 README 里写的 "formerly youtube-dl" 指的就是这个历史——Seal 早期基于 youtubedl-android(把 youtube-dl 打包进安卓),后来迁移到 yt-dlp 的 fork 版本,获得了更及时的站点兼容性更新。
yt-dlp 覆盖多少站点
yt-dlp 官方维护着一份支持站点列表(GitHub 仓库内的 Markdown 文件)。根据 Seal README 的 GitHub Shields 徽章,当前覆盖数量以"上千"计——Seal README 里具体数字是 超过 1700 个视频站。
这个数量级意味着:
- 几乎所有主流视频平台都在覆盖内
- 小众独立视频站、个人博客嵌入视频、教育平台课程也大部分能解析
- 少数站点主动封锁解析时可能失败(需要 Cookie 或等待 yt-dlp 更新)
Seal 的 youtubedl-android 版本
Seal 不直接打包 yt-dlp 的 Python 源码,而是通过 youtubedl-android 库把它和 Python 运行时一起打包进安卓 APK。v1.13.0 的 CHANGELOG 里明确写了:
Update youtubedl-android to v0.16.1
每次 Seal 发新版本都会把 youtubedl-android 升到对应版本,同时 Seal 还支持应用内单独更新 yt-dlp 内核(见 界面与偏好分组)——两个更新通道互不干扰。
Seal 其他依赖
除了 yt-dlp,Seal 还集成了:
| 依赖 | 作用 |
|---|---|
| aria2c | 外部多线程下载器 |
| mutagen | 音频文件元数据读写 |
| ffmpeg | 视频/音频流合并、字幕嵌入、容器重封装 |
| Monet | 实现 Material You 动态取色 |
| youtubedl-android | 把 yt-dlp + Python 打包进安卓的桥接库 |