DSH YouTube 双语字幕
利用 DeepSeek Harness,把 YouTube 当前显示的英文字幕变成更自然的双语字幕。
> 实验性、非官方项目。 本项目观察 YouTube 页面已经渲染出来的字幕文字。YouTube 没有向普通观看者提供“读取任意视频实时字幕文本”的正式 API;页面选择器可能变化,使用和再分发前请自行审阅 YouTube 条款。

它解决什么问题
YouTube 自动字幕经常碎成短片段,还会重复和回改:
captions become eas
captions become easier
captions become easier to follow逐次翻译这些变化,中文会跳动、重复且不自然。本项目先稳定英文 token、消除重叠,再让 DeepSeek 结合前一句上下文进行智能分句和自然翻译。
主要特点
- 能处理半词修正、重复 DOM 更新和滚动字幕重叠。
- 先理解完整句意,再生成自然译文。
- 英文原文与译文使用独立 Shadow DOM 覆盖层显示。
- DeepSeek API Key 只保存在 Harness,不进入扩展或网页。
- 仅监听
127.0.0.1,固定扩展来源并自动签发临时访问令牌。 - 默认不保存字幕历史、无遥测、无广告。
- 未配置模型、超时或限流时保留英文,并显示清楚的降级提示。
使用条件
- DeepSeek Harness
0.1.0-rc.6 - Node.js
22.19+或24+ - Chrome
144+ - Harness 中已经配置可用模型;默认路由为
deepseek-official / deepseek-v4-flash
小白安装:使用 GitHub Release
第一步:下载两个文件
打开 v0.1.0-alpha.2 下载页,下载:
dsh-youtube-bilingual-subtitles-0.1.0-alpha.2.tgzdsh-youtube-bilingual-subtitles-chrome-0.1.0-alpha.2.zip
第二步:安装 Harness 插件
在下载目录打开 PowerShell:
dsh plugin --profile web add .\dsh-youtube-bilingual-subtitles-0.1.0-alpha.2.tgz
dsh web如果 PowerShell 提示找不到 dsh,请先将 DeepSeek Harness 的 bin 目录加入 PATH,或把命令中的 dsh 换成当前设备上 dsh.cmd 的完整路径。仓库文档不预设安装盘符和目录。
看到 dsh web: http://127.0.0.1:3080 后保持这个 PowerShell 窗口运行;关闭窗口后翻译服务也会停止。
第三步:加载 Chrome 扩展
1. 解压 Chrome ZIP。 2. Chrome 打开 chrome://extensions。 3. 打开右上角“开发者模式”。 4. 点击“加载已解压的扩展程序”。 5. 选择含有 manifest.json 的解压目录。
第四步:连接并观看
1. 打开扩展的“选项”。 2. 保持默认地址 http://127.0.0.1:3080。 3. 点击“保存并测试连接”。 4. 打开 YouTube 视频并开启英文 CC。
扩展会自动与本机插件配对,不需要复制 API Key 或访问令牌。 Harness 插件包和 Chrome ZIP 必须来自同一个 Release。升级后需要重新启动 dsh web,并在 chrome://extensions 中点击扩展的“重新加载”。
从源码开发或安装
git clone https://github.com/yun-zhi-dao/dsh-youtube-bilingual-subtitles.git
cd dsh-youtube-bilingual-subtitles
corepack pnpm install
corepack pnpm run check
.\scripts\install-local.ps1安装脚本会先运行类型检查、测试、构建和扩展安全检查;全部通过后才安装到 DSH web profile,并打印 Chrome 需要加载的目录。
工作流程
YouTube 当前可见字幕
→ Chrome 隔离内容脚本
→ 扩展 Service Worker
→ 本机 Harness 专用鉴权路由
→ 去重、回改处理与自适应分句
→ DeepSeek 翻译
→ 严格验证英文覆盖范围
→ 双语覆盖层插件不会复用 Harness 的通用 /api,只注册用途单一的 /youtube-bilingual/v1。如果 Harness Web 监听到局域网地址而不是 127.0.0.1,插件会拒绝加载。
常见问题
| 现象 | 处理方法 |
|---|---|
“保存并测试连接”显示 HTTP 403 | 安装同一个 Release 中的 Harness 插件包和 Chrome ZIP,重启 dsh web,再到 chrome://extensions 重新加载扩展。0.1.0-alpha.2 已修复 Chromium 省略 GET Origin 时的误拒绝。 |
| 显示“请启动 DeepSeek Harness” | 运行 dsh web,然后在扩展设置中重新测试连接 |
| 显示“请配置模型 Key” | 在 Harness 的 Settings → Models 中配置 DeepSeek 模型凭据 |
| 没有检测到字幕 | 确认 YouTube 播放器已经开启英文 CC;并非所有视频都有字幕 |
| 切换视频后没有恢复 | 刷新页面;若反复出现,请提交 Issue 并附 Chrome/扩展版本,不要附 API Key |
| Chrome 拒绝加载扩展 | 确认选择的是直接包含 manifest.json 的目录,并使用 Chrome 144+ |
隐私和安全
扩展只向用户选择的本机 Harness 地址发送:当前可见字幕、最少时间信息、临时会话 ID。不会发送视频网址、标题、频道、YouTube 账号、Cookie 或浏览历史。详见 [PRIVACY.md](PRIVACY.md) 和 [SECURITY.md](SECURITY.md)。
扩展权限只有:
- YouTube 内容脚本:
https://www.youtube.com/* - 本机网络:
http://127.0.0.1/* - 设置保存:
storage
没有远程 JavaScript、eval、统计分析、广告和字幕数据库。
已知限制
- YouTube 字幕 DOM 没有官方稳定契约,页面更新可能导致捕获暂时失效。
- 只处理页面已显示的字幕,不会录音或自行做语音识别。
- 并非所有视频或直播都有英文字幕。
- 首版通过 GitHub 以“加载已解压扩展”方式发布,不进入 Chrome Web Store。
- 延迟和成本取决于所配置的模型与网络。
卸载
.\scripts\uninstall-local.ps1然后在 chrome://extensions 中移除扩展。
许可证
[MIT](LICENSE)。YouTube 是 Google LLC 的商标。本项目与 Google、YouTube、DeepSeek 均无隶属或官方背书关系。