DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Course Subtitles — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
C

dsh-course-subtitles

Course Subtitles

DSH dual-half plugin: extract course video subtitles (DeepLearning.AI, YouTube, Bilibili, Coursera), rebuild them as whole sentences, translate line-by-line (EN/ZH), generate section headings, and publish one Feishu doc per lesson under a parent node. Also exports a Course Outline (video titles as p

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:fengchang618gmail/dsh-course-subtitles#e63b66d1c2bb5f3f2f9867c9ed9f21a52256deb2
READMECompatibilityVersions

Description

DSH dual-half plugin: extract course video subtitles (DeepLearning.AI, YouTube, Bilibili, Coursera), rebuild them as whole sentences, translate line-by-line (EN/ZH), generate section headings, and publish one Feishu doc per lesson under a parent node. Also exports a Course Outline (video titles as plain text, week/module blocks preserved) into one Feishu doc. Every credential comes from the environment or the harness credential store — nothing is hardcoded, and the LLM key chain falls back automatically.

Compatibility and provenance

Course Subtitles is published as dsh-course-subtitles and currently resolves to version 0.5.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
any
Release source
github
Registry updated
9/23/2026

Versions

0.5.0stable
9/23/2026

Related plugins

Loading related plugins…

Latest
0.5.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
any
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
9/24/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in vision-media.

Tool Describe Image@linxin666/dsh-tool-describe-imageModel-facing describe_image tool for the dsh web GUI: gives a text-only model image understanding by asking a vision-language model at an OpenAI-compatible endpoint to describe one image (local path, http(s) URL, or attachment reference). Hot-pluggable — Vision Routerdsh-vision-routerEyes for text-only DeepSeek Harness agents: built-in free vision chain (no key) + pixel-level vision tools (Q&A, grounding, crop, pixel diff, colors, OCR, SVG trace, cutout, screenshots). One-command install, no Python, image turns work like ordinary toolVision Toolkit@anionex/dsh-vision-toolkitDeepSeek Harness-native integration for agent-vision-toolkit: image Q&A, OCR, grounding, UI restoration, pixel diff, Artifacts, and Web UI.Deepseek Ivideodeepseek-ivideoiPolloWork HyperFrames Video Studio and 27 editable video templates as a native DeepSeek Harness conversation view.

README

dsh-course-subtitles

把视频课程的字幕抓下来 → 重排成完整句子 → 逐句中英对照翻译 → 自动分章节 → 一课一篇写进飞书文档。

一个 DeepSeek Harness(dsh)插件,也可以完全脱离 DSH 当命令行工具用。

适合谁用:想把 DeepLearning.AI / YouTube / B 站上的课程变成可检索、可搜索、带中英对照的学习笔记的人;在做个人知识库的人;需要批量拆解爆款视频结构的知识工作者。


它到底做了什么

课程链接 ──► 抓字幕 ──► 合并成完整句子 ──► 逐句中英翻译 ──► 生成章节标题 ──► 飞书文档(每课一篇)
             (4 个平台)   (绝不切断一句话)      (LLM)          (H2 中英)        └─ 自动挂到你的知识库目录下

最终你得到一篇飞书文档,长这样:

# 01 Welcome 欢迎                          ← 课程标题(自动中文翻译)
第 1 周 · 视频时长 4:32 · 生成时间 2026-01-01   ← 元信息

## What is Generative AI? 什么是生成式AI?   ← 自动生成的章节标题(中英对照)

Generative AI is a general purpose technology.   ← 英文原句
生成式 AI 是一种通用技术。                          ← 中文翻译

...

另外还有一个课程大纲导出功能:把课程首页的目录(只保留视频条目)抓成一篇飞书文档,按 Week / Module 分块 —— 不调用任何模型,零 token 花费。


支持哪些平台

平台链接形式需要什么
DeepLearning.AIlearn.deeplearning.ai/courses/...、www.deeplearning.ai/courses/...无需登录,官方字幕
YouTubeyoutube.com/watch?v=...、youtu.be/...、播放列表能访问 YouTube(国内需要代理;插件会自动探测本机代理,也支持 yt-dlp 兜底)
Bilibilibilibili.com/video/BV...UP 主上传过字幕轨(AI 字幕也算)
Courseracoursera.org/learn/...需要登录 Cookie(实验性支持)

5 分钟上手

第 0 步:准备三样东西

  1. Node.js ≥ 18(node -v 检查)
  2. 一个飞书自建应用(用来写文档)
    • 去 飞书开放平台 创建「企业自建应用」
    • 在「权限管理」里开通:wiki:wiki、docx:document、drive:drive
    • 发布版本,拿到 App ID 和 App Secret
    • ⚠️ 关键一步:打开你要写入的知识库 → 设置 → 成员管理 → 添加应用,把这个应用加进去,否则会报权限错误
  3. 一个 LLM API Key:DeepSeek 官方(https://api.deepseek.com)或任何 OpenAI 兼容服务都行

如果你在国外或者能直连 YouTube,第 2 步做完就能跑。国内访问 YouTube 需要本地代理(v2rayN / Clash 等),插件会自动识别,不用配。

第 1 步:安装

方式 A:装成 DSH 插件(推荐,能在对话里直接用)

git clone https://github.com/fengchang618gmail/dsh-course-subtitles.git
cd dsh-course-subtitles
node scripts/activate.js      # 把插件链接进 DSH profile 并写好 cordis.patch.yml
# 然后重启 DSH(退出后重新运行 dsh --profile web)

仓库自带 dsh.bundle 清单和 cordis.patch.yml,所以走官方安装通道也是同一套配置;发布到 npm 之后可以直接 dsh plugin --profile web add dsh-course-subtitles,不必手动 clone。

方式 B:只用命令行,不装插件

git clone https://github.com/fengchang618gmail/dsh-course-subtitles.git
cd dsh-course-subtitles
node bin/cs.js --help

第 2 步:配置密钥(二选一,都不写进代码)

方式一:环境变量(最简单)

# macOS / Linux
export FEISHU_APP_ID=cli_xxxxxxxxxxxx
export FEISHU_APP_SECRET=xxxxxxxxxxxxxxxx
export DEEPSEEK_API_KEY=sk-xxxxxxxxxxxx

# Windows PowerShell
$env:FEISHU_APP_ID="cli_xxxxxxxxxxxx"
$env:FEISHU_APP_SECRET="xxxxxxxxxxxxxxxx"
$env:DEEPSEEK_API_KEY="sk-xxxxxxxxxxxx"

方式二:DSH 凭据库(装成插件的推荐做法,密钥不进 shell 历史)

编辑 $DSH_HOME/.credentials.yaml(Windows 是 C:\Users\你的用户名\.dsh\.credentials.yaml):

version: 1
refs:
  FEISHU_APP_ID: cli_xxxxxxxxxxxx
  FEISHU_APP_SECRET: xxxxxxxxxxxxxxxx
  DEEPSEEK_API_KEY: sk-xxxxxxxxxxxx

第 3 步:跑起来

先做个不写飞书的演练,确认抓取和翻译都正常:

node bin/cs.js run --course https://learn.deeplearning.ai/courses/generative-ai-for-everyone --dry-run --lessons 1

没问题了,正式写入飞书(--parent 换成你自己的知识库节点链接):

node bin/cs.js run \
  --course https://learn.deeplearning.ai/courses/generative-ai-for-everyone \
  --parent https://your-tenant.feishu.cn/wiki/xxxxxxxxxxxxxxxxxxxx

只导出大纲(不花钱):

node bin/cs.js outline --course https://www.deeplearning.ai/courses/agentic-ai --parent <你的知识库节点链接>

两种用法

用法一:在 DSH 对话里直接用

装好插件并重启 DSH 后,把课程地址和飞书目录写进设置($DSH_HOME/settings.yaml 的 course-subtitles: 段),之后只要对 agent 说一句:

帮我跑一下课程字幕

agent 会调用这几个工具:

工具作用
course_subtitles_run抓字幕 → 翻译 → 分章节 → 写飞书,返回 run id
course_outline_run只导出课程大纲(零 token)
course_subtitles_status查看运行进度和产出文档链接
course_proxy_status网络自检:本机代理能不能出网、yt-dlp 在不在
course_llm_status列出会依次尝试的 LLM 凭据,probe: true 可以逐个试通

用法二:命令行

course-subtitles run [options]      # 字幕流水线(每课一篇飞书文档)
course-subtitles outline [options]  # 课程大纲(一篇飞书文档,零 token)
course-subtitles adapters           # 看看支持哪些平台
course-subtitles proxy              # 本机代理 / yt-dlp 体检
course-subtitles llm [--probe]      # 看看会用哪些 LLM 密钥,并逐个试通
course-subtitles config             # 打印最终生效的配置(密钥打码)

常用参数:

--lessons 1-10,12    # 只跑部分课时
--dry-run            # 只抓取+翻译,不写飞书
--force              # 全部重算,并原地重建已存在的飞书文档(链接不变)
--update-doc         # 只用缓存重写文档内容,不重新下载/翻译
--no-group           # 不按 Week/Module 分组,全部平铺
--no-segment         # 不合并断句,按原始字幕片段输出
--proxy <url>        # 手动指定代理:http://127.0.0.1:10809 或 socks5://127.0.0.1:10808
--proxy-mode off     # 完全不用代理
--no-yt-dlp          # 关闭 yt-dlp 兜底
--json               # 输出机器可读报告

配置项

配置文件放在工作目录下叫 course-subtitles.config.json(可参考 config.example.json),可用 --config <path> 指定。

字段默认值说明
courseUrl示例课程课程 / 视频链接
courseDisplayName—写进文档里的课程名
feishuParent必填飞书知识库父节点链接或 token
feishuDomain自动推导拼 wiki 链接用的域名,留空则从 feishuParent 推导
groupByWeektrue按 Week / Module 建目录
llmBaseUrl / llmModelDeepSeek首选 LLM 接口与模型
llmProviders[]额外要尝试的服务商(见下)
llmConcurrency3翻译并发数
translateChunkSize60每批翻译多少句
segmentSentencestrue是否把字幕片段合并成完整句子
proxyUrl / proxyMode自动代理设置,auto = 直连优先、失败才走代理
ytDlpPath / youtubeYtDlp自动YouTube 字幕兜底
courseraCookie空只有 Coursera 需要

关于密钥:仓库里没有任何密钥

这个项目不包含、不需要、也不接受硬编码的 API Key。所有凭据都从下面三个地方按优先级读取:

  1. 环境变量:LLM_API_KEY / DEEPSEEK_API_KEY / FEISHU_APP_ID / FEISHU_APP_SECRET / COURSERA_COOKIE
  2. 配置文件(你自己的本地文件,已被 .gitignore 排除)
  3. DSH 凭据库 $DSH_HOME/.credentials.yaml

LLM 多密钥自动回退

如果首选的 key 挂了(余额不足、被限流、区域不通),插件会自动依次尝试本机已有的其它凭据,不用你手动切换:

$ course-subtitles llm
chain (7 candidates, tried in order):
  1. deepseek     deepseek-chat        https://api.deepseek.com              [openai-completions, key from credentials.yaml]
  2. qimingxing   deepseek-v4.1-flash  https://api.aisj.ai                   [openai-responses,   key from credentials.yaml]
  3. glm          glm-5.3              https://api.aisj.ai                   [openai-completions, key from credentials.yaml]
  ...

加 --probe 会真的逐个 ping 一遍,直接告诉你哪个可用:

$ course-subtitles llm --probe
  1. deepseek     deepseek-chat        OK 944ms
  2. qimingxing   deepseek-v4.1-flash  OK 2472ms
  3. kimi         kimi-k3              OK 9986ms

要用别的服务商,在配置里声明即可:

"llmProviders": [
  { "name": "my-relay", "baseUrl": "https://relay.example.com/v1",
    "model": "deepseek-chat", "api": "openai-completions", "apiKeyEnv": "MY_RELAY_API_KEY" }
]

api 支持三种协议:openai-completions(默认)、openai-responses、anthropic-messages。


常见问题

Q:报飞书权限错误 / 403? 这个应用必须被加进目标知识库:知识库 → 设置 → 成员管理 → 添加应用。同时确认已开通 wiki:wiki、docx:document、drive:drive 权限并发布了版本。

Q:YouTube 一直失败? 先跑 course-subtitles proxy。它会告诉你:本机有没有代理、代理能不能真的出网、yt-dlp 装没装。国内直连 YouTube 一定失败,需要有本地代理。

Q:跑一遍要花多少钱? 一个 32 课的课程大约 16 万 token,DeepSeek 上约 ¥1–2。重跑不会重复花钱 —— 字幕、断句、翻译、章节都做了磁盘缓存,只补缺失的部分。大纲导出完全不花钱。

Q:会不会把一句话从中间切断? 不会。字幕片段会先合并成完整句子,段落始终由原始片段程序化拼接,不增字、不删字;章节标题也只允许落在句子边界上,落不进就前移到下一句。

Q:改完代码不生效? host 插件是 DSH 启动时加载的,改完 src/ 要重启 DSH;CLI 则立即生效。


项目结构

src/engine/          # 纯 Node 引擎(与 DSH 解耦,CLI 直接复用)
  adapters/          #   deeplearning | youtube | bilibili | coursera
  llm.js             #   凭据链:环境变量 / 配置文件 / DSH 凭据库,逐个尝试
  segment.js         #   整句分段(绝不切断一句话)
  translate.js       #   批量翻译(分批 / 对齐 / 重试 / 补缺)
  sections.js        #   章节标题生成 + 位置校验
  outline.js         #   课程大纲解析
  feishu.js          #   飞书文档创建 / 写入 / 挂载 / 幂等
  proxy.js           #   代理自动识别 + yt-dlp 定位
  pipeline.js        #   编排 + 缓存断点续跑
src/host/index.js    # DSH Host 半(cordis 插件 + HTTP 路由 + agent 工具)
bin/cs.js            # CLI 入口

更详细的设计说明、已知限制和自测脚本,见 docs/REFERENCE.md。


许可

MIT