DeepSeek Harness (DSH) 的核心理念是「一切皆插件」。在进行自动化视频处理或多语言内容分发时,字幕的解析、翻译与合并是常见但繁琐的环节。subtitle-studio 是一个针对 DSH 的多语言字幕翻译工作流插件。它由 JohnXu22786 维护,基于 MIT 协议开源。该插件从零实现了字幕解析器,不依赖重型库,提供 SRT/VTT 解析、句子级 LLM 翻译、双语字幕合并、对齐校验以及批量处理能力。
核心功能¶
- 解析与写入:支持 SRT 和 WebVTT 格式。解析器采用容错状态机,能处理缺失序号、空白分隔符、CRLF 以及 UTF BOM(UTF-8/UTF-16LE/UTF-16BE)。输出强制为 UTF-8,毫秒级时间戳可无损回环。
- 句子级翻译:基于 LLM 的批处理请求,支持字符预算控制、JSON 模式、重试机制和术语表注入。默认对接 DeepSeek(OpenAI 兼容接口),也可通过配置接入其他 OpenAI 兼容端点。
- 双语合并:支持堆叠(原文在下)和交错(原文与译文交替)两种布局,可自定义分隔符和标签。
- 对齐校验:检查译文数量、缺失/多余条目、空译文以及时间轴重叠。
- 批量处理:支持目录级处理,包含并发控制、文件级重试、回退机制以及原子检查点文件,支持暂停/恢复。
- 双入口:提供 5 个 DSH 工具(
sub_parse,sub_translate,sub_merge,sub_export,sub_glossary)以及一个无依赖的 CLI 工具。
安装与配置¶
前置要求:Node.js >= 18.18。插件本身零运行时依赖。
安装:在 DSH profile 中添加插件:
dsh plugin --profile <name> add subtitle-studio
安装后,插件会在 profile 中注册配置行,并注入相应的工具和服务。
关键配置项:插件通过 cordis.patch.yml 注入配置。以下是部分核心配置项说明:
- LLM 配置:
llm.provider:HTTP 后端或 harnessctx.llmseam,默认为openai。llm.baseUrl:OpenAI 兼容接口地址,默认为https://api.deepseek.com/v1。llm.apiKey:API 密钥,支持环境变量展开。llm.model:模型名称,默认为deepseek-chat。llm.chunkChars:单次请求的字符预算,默认 3500。
- 语言配置:
sourceLanguage:源语言标签,默认为空(自动)。targetLanguages:目标语言列表,默认为空。
- 输出配置:
output.layout:双语合并布局,可选stacked(堆叠)或interleaved(交错),默认stacked。output.format:输出格式,可选srt或vtt,默认保留源格式。
- 批量与校验:
batch.concurrency:批量处理时的并发数,默认 2。validation.maxChars:CJK 超长字幕阈值,默认 160。validation.maxWords:拉丁语超长字幕阈值,默认 40。
使用方法¶
插件提供了两种使用方式:CLI 工具和 DSH 工具集。
CLI 使用:安装后可直接运行全局命令:
subtitle-studio --help
DSH 工具使用:插件注册了 5 个工具,可通过 DSH 的 ctx.tools 调用:
sub_parse:解析字幕文件为 JSON 结构。sub_translate:调用 LLM 进行翻译。sub_merge:合并源字幕与译文。sub_export:导出为 SRT 或 VTT。sub_glossary:管理 JSON 术语表。
示例命令(需在 DSH 环境中执行):
# 调用翻译工具
dsh tools sub_translate --file input.srt --lang zh
适用场景与注意¶
适用场景:需要自动化处理多语言字幕的视频项目,或需要将字幕翻译集成到更大的 DSH 工作流中的开发者。
注意:插件以当前 DSH 进程的权限运行,涉及 API 调用和文件读写,请确保配置的 API Key 安全。安装前建议查看源码以确认许可证和依赖情况。
总结¶
subtitle-studio 提供了一套从解析到翻译、合并、校验的完整字幕处理链路。对于需要在 DSH 生态中集成字幕功能的开发者,这是一个直接可用的解决方案。插件源码与目录页见下方链接。