JZSub 是基于 yt-dlp + GPT 的开源视频双语字幕工具,一条链接自动下载最高画质视频与封面、GPT 双语字幕并烧录 MP4。支持 YouTube/B站/Vimeo/Twitch/TikTok 等多平台,可作为 Codex skill 调用,灵活按需交付,完整自动流水线。
🎤 引言
把 YouTube / B站 视频"装进口袋"带去地铁、飞机、没网的地方看——这种需求太常见了。问题在于:手动操作流程长——下视频、抽字幕、调样式、烧录、做封面……少则半小时,多则折腾一下午。
JZSub 直接把这个流程做成了一条命令:"给个链接,拿回最高画质视频 + 封面 + GPT 双语字幕 + 烧录完成的 MP4"。234 Stars、24 Forks、Python 写、MIT 协议、3 天前刚创建(2026-07-10)——虽然项目非常新,但 README 已经写得相当完整,连 Codex skill 集成方式都给好了。
底层用 yt-dlp 拉视频流,GPT 做紧凑分批双语翻译,FFmpeg + libass 烧录字幕(MiSans 字体底部双语堆叠)。支持 YouTube、Bilibili、Vimeo、Twitch、Dailymotion、TikTok 六大主流平台,外加 yt-dlp 兼容的所有其他站点。
⭐ 核心功能
JZSub 的功能集围绕"一条链接全包"展开。
1. 最高画质视频下载
底层用 yt-dlp,直接取最佳视频流 + 最佳音频流,封装为 MP4。下载完音视频同步不丢帧、码率最高。
2. GPT 双语字幕翻译(核心差异化)
- 紧凑分批翻译:字幕按"紧凑文档"分批送 GPT,不读完整清单,大幅降低 token 消耗。
- 批间上下文衔接:批次之间有上下文逻辑(如人物关系、术语统一),不会上句下句人名对不上。
- 句子边界重新切分:翻译后按目标语言自然句法重新切分时间轴,避免"半句话跨两屏"。
- 原文保持不变:双语字幕中原文永远在,不做"翻译后只留译文"这种操作。
- 多语言支持:默认译成中文,
--target-lang可指定任何语言(日语、法语、阿拉伯语…)。
3. 自动字幕烧录(libass + MiSans)
- MiSans 字体(小米 HyperOS 官方字体):烧录用的是官方 MiSans Bold,字形清爽。
- 底部双语堆叠:原文 + 译文上下排列,适合学习场景。
- 自适应竖屏:横屏竖屏自动适配(手机上看起来不会"字幕把画面挡一半")。
- 精确背景:字幕块带半透明背景,复杂画面下也能看清字。
- libass 渲染:ASS 格式字幕渲染,专业级精度。
4. 封面直取
- 自动从平台抓取视频封面。
- 转换为通用 JPEG(无需手动存网页图片)。
- 与视频一起交付为
cover.jpg。
5. 静默登录(黑科技)
- 需要登录态时直接读取 Chrome 浏览器现有的 Cookie——你已经在 Chrome 登录了 YT 会员就直接能用。
- 不导出 Cookie——隐私友好。
- 不用手动复制粘贴 netscape cookie 文件。
6. 按需交付(--deliver)
四种交付目标,按需选择:
| 目标 | 说明 | 产物 |
|---|---|---|
full(默认) | 完整流水线 | 视频 + 封面 + 字幕 + 双语烧录 MP4 |
video | 只要视频,不翻译不烧录 | 视频 + 封面(平台有字幕时附原始字幕) |
subs | 只要字幕,不下载视频流 | 原始字幕 + 衍生 SRT |
bilingual-subs | 只要双语字幕文件 | 原始字幕 + 双语 SRT/ASS(不下视频) |
——想要纯翻译不下载视频?bilingual-subs 一键交付。
7. 低耗运行 + 进度条
- 只读紧凑字幕文档,不读完整清单。
- 烧录每 5% 显示一次进度条:
烧录 [██████████░░░░░░░░░░] 50% 01:11 / 02:23 0.68x8. 无字幕也能用
平台没有字幕时(比如 vlog 短视频、TikTok 视频),JZSub 不会报错,直接交付视频、MP4、封面。需要字幕再走"音频转写"工具(比如 Whisper)补。
9. Codex Skill 集成(杀手锏)
- 可作为 Codex skill 安装到
~/.codex/skills/。 - 在 Codex 中直接用
$jzsub <url>命令。 - JZSub 持续执行下载、翻译、字幕渲染、烧录与交付检查——不会停在"仅下载完成"的中间状态。
- Codex agent 会判断你的需求选择正确的
--deliver目标。
📥 安装与使用
1. 安装依赖
Python 3.10+ / yt-dlp / Deno 2.3+ / FFmpeg(带 libass)/ MiSans Bold 字体。
macOS 一键安装:
brew install yt-dlp ffmpeg-full denoLinux(Debian/Ubuntu):
sudo apt update
sudo apt install python3 python3-pip ffmpeg
# yt-dlp(推荐 pip 装最新版)
pip install -U yt-dlp
# Deno
curl -fsSL https://deno.land/install.sh | shMiSans 字体:从 小米 HyperOS 官方页面 下载,仓库不含字体(合规考虑)。
2. 命令行直接使用
git clone https://github.com/pengchujin/jzsub.git
cd jzsub
# 安装 Python 依赖
pip install -r requirements.txt
# 完整流水线(默认 full)
python3 skills/jzsub/scripts/fetch_video.py "https://www.youtube.com/watch?v=VIDEO_ID"
# 只要视频,不翻译不烧录
python3 skills/jzsub/scripts/fetch_video.py "<url>" \
--output-dir job --deliver video --browser-cookies auto
# 只要双语字幕文件
python3 skills/jzsub/scripts/fetch_video.py "<url>" \
--output-dir job --deliver bilingual-subs --target-lang zh
# 自检
python3 skills/jzsub/scripts/fetch_video.py --self-test3. 安装为 Codex skill
git clone https://github.com/pengchujin/jzsub.git
mkdir -p ~/.codex/skills
cp -R jzsub/skills/jzsub ~/.codex/skills/在 Codex 新任务中发送:
$jzsub https://www.youtube.com/watch?v=VIDEO_IDCodex 会自动调度下载、模型翻译、字幕渲染、烧录、交付检查——一条龙。
4. 验证脚本
python3 -m unittest discover -s skills/jzsub/tests -v🎯 适用场景
- 学习外语:下载 YouTube/B站视频 + 自动双语字幕(原文 + 中文/任意目标语言),随时回看对照。
- 离线看片:通勤、地铁、飞机、长途车上没网,预先下好带字幕的视频。
- 自媒体二创:把外网视频 + 双语字幕 + 烧录好的 MP4 拿来剪辑,无需再额外调字幕样式。
- 教学/培训:把英文技术演讲下下来 + 中文字幕烧录,做内部培训素材。
- 内容研究:批量下载一系列相关视频 + 双语字幕,做语料库分析。
- Codex 用户:让 AI agent 直接调用 JZSub 处理视频,不用自己写代码。
- 字幕组协作:作为初翻流水线,GPT 翻译后再人工校对,比纯人工快 5-10 倍。
🔍 对比/替代方案
| 工具 | 定位 | JZSub vs 它 |
|---|---|---|
| yt-dlp | 纯命令行视频下载 | yt-dlp 只下载,不做翻译、不做烧录。JZSub 把 yt-dlp 当底层,前端加 GPT + libass |
| VTT / SRT 字幕下载 + 手翻 | 传统字幕组流程 | 全手动,耗时耗力。JZSub 自动化 |
| ChatGPT / Claude 翻译 + 手动烧录 | 半自动方案 | 你得自己拼接 yt-dlp 输出 + 写 ffmpeg 命令。JZSub 一条命令 |
| 视频字幕下载工具(DownSub、SaveSubs) | Web 端字幕下载 | 只下载平台原生字幕(没有就用不了),不能 GPT 翻译。JZSub 双语生成 + 烧录 |
| Subtitle Edit (subedit) | 字幕编辑工具 | 本地编辑 SRT/ASS 的工具,不下载视频、不翻译。JZSub 是"端到端流水线" |
| Memo / Whisper 字幕生成 | 音频转字幕 | 这些是没有字幕时用音频转,JZSub 优先用平台原生字幕,效率与质量更高 |
| VideoLingo / 各种双语字幕项目 | AI 双语字幕 | JZSub 的差异化是:与 yt-dlp 一体化(不是单独翻译工具),加上 libass 专业烧录、Codex skill 集成 |
| GTranslate + 视频编辑器 | 通用方案 | 通用翻译工具,不针对视频场景优化 |
选择标准:
- 要"一条链接出全套" → JZSub
- 只要下载 + 自带字幕 → yt-dlp 直接搞定
- 没字幕要 ASR 转写 → Whisper 类工具
- 要 GUI 编辑字幕 → Subtitle Edit / Aegisub
⚠️ 注意事项
- 项目非常新(2026-07-10 创建,仅 3 天):0 open issues,但实际生产环境的边缘 case 可能没被广泛测试,生产前小规模试用。
- 免责声明:README 明确写——"仅下载你有权访问和保存的内容。JZSub 不绕过 DRM、付费墙、验证码或平台安全限制"。会员视频、YouTube Premium 独占内容等需要登录态的,用 Chrome 浏览器已经登录的 Cookie可以下;但绕过付费墙本身违反 YouTube TOS,请遵守平台规则。
- GPT 翻译需要 API Key:默认应该用 OpenAI / 兼容 OpenAI API 的服务(Azure OpenAI / DeepSeek / 自部署 OpenAI 兼容模型),需要配置 API Key。
- MiSans 字体不包含:从 HyperOS 官方 下载,仓库不打包字体(合规考虑)。
- FFmpeg 必须带 libass:默认 FFmpeg 不带 libass 字幕渲染,需要完整版(macOS
brew install ffmpeg-full、Linuxapt install ffmpeg通常带)。 - 浏览器登录态依赖 Chrome:静默登录从 Chrome 读取 Cookie,用 Safari / Firefox 不行。需要 Chromium-based 浏览器 + 已登录目标平台。
- 翻译质量看 GPT 模型:GPT-4o / GPT-4.1 翻译质量高,GPT-3.5-turbo 偶有错译。专业术语建议二次校对。
- 双语字幕对屏幕空间要求:横屏视频底部双语堆叠对 1080p+ 友好,720p / 竖屏字幕会偏小。
- 不绕过 DRM / 验证码:Widevine / Netflix / Disney+ 这类 DRM 保护内容无法下载。
- 多语言术语一致性:GPT 在长视频多批次翻译中术语一致性可能波动,极专业场景建议人工 glossary。
✅ 总结
JZSub 解决了一个朴素场景:想要一条命令出"最高画质视频 + 封面 + 双语字幕 + 烧录 MP4"的完整流水线。底层 yt-dlp 拉流、GPT 做紧凑分批翻译、libass + MiSans 专业烧录、Codex skill 无缝集成、4 种交付目标按需选择、0 open issues + MIT 协议。
最大的差异化是 "端到端 + AI 翻译 + Codex 集成"——同类项目要么纯下载、要么纯翻译、要么只做 GUI 编辑,JZSub 把这些缝合成了一个命令。对学习外语、离线看片、自媒体二创、Codex 用户来说是一套极其实用的工具链。
挑毛病的话:项目太新(3 天),生产稳定性待验证;GPT 翻译需要 API Key(OpenAI / DeepSeek / 自部署均可);MiSans 字体需手动下载;Chrome 浏览器登录态依赖;不绕过 DRM / 付费墙 / 验证码(合规导向,但限制了部分场景)。
整体推荐给:
- 学习外语的用户(最匹配,自动双语字幕烧录);
- 通勤 / 长途旅行的离线看片党;
- 自媒体二创(外网视频 + 中文字幕);
- Codex 用户(agent 自动调度视频处理流水线);
- 字幕组(GPT 初翻 + 人工校对,比纯人工快 5-10 倍);
- 想"一条命令出全套"的极客玩家。
GitHub 主页 | Releases 下载 | yt-dlp 项目 | libass 项目 | MiSans 字体下载 | Codex 介绍