puffer1021-subtitle-proofreader
Use this skill when the user provides a Jianying, Whisper, or other video .srt subtitle file and wants safe proofreading without changing timestamps or subtitle structure.
Inputs
- Required:
.srtsubtitle file - Optional: reference article for background understanding only
- Optional: provider choice, supports
qwen,deepseek,glm
Outputs
*.fixed.srt*.merge-report.md
Safety boundary
- Keep subtitle order unchanged
- Keep timestamps unchanged
- Keep per-block line counts unchanged
- Reference article is background-only, not rewrite source
- If provider output fails validation, do not write
.fixed.srt
Workflow
- Parse the
.srtfile and flatten subtitle text lines into stable numbered rows. - Run two independent proofreading passes in chunks.
- Validate that model output contains exactly the expected numbered rows.
- Conservatively merge A/B candidates, preferring agreement and avoiding punctuation-only rewrites.
- Rebuild the original SRT structure with corrected text only.
- Write
*.fixed.srtand*.merge-report.mdnext to the input file.
Provider selection
- Natural language is allowed, for example: “用 deepseek 跑这份字幕”
- CLI also supports explicit selection with
--provider - Optional model override with
--model - Environment variables:
DASHSCOPE_API_KEYfor qwen,DEEPSEEK_API_KEYfor deepseek,ZHIPUAI_API_KEYfor glm.
CLI examples
tgg-subtitle-skill input.srt --provider qwen --reference article.md
tgg-subtitle-skill input.srt --provider glm --model glm-4-flash --reference article.md
tgg-subtitle-skill input.srt --provider deepseek --chunk-size 150
Setup if the CLI is unavailable
If tgg-subtitle-skill is not installed, install the public package:
python3 -m pip install git+https://github.com/puffer1021/tgg-subtitle-skill.git
Then rerun the CLI command. Do not proceed with a fake output unless the user explicitly asks for a dry run or test mode.
Package layout
SKILL.md: trigger, inputs, outputs, safety boundaryREADME.md: implementation and engineering notesjianying_subtitle_proofread/: Python implementationexamples/: example input and output filestests/fixtures/: test-only subtitle datasetsreferences/: optional terminology and workflow notes
Scan to join WeChat group