wjs-translating-subtitles

Solid

Use when the user has an SRT (or transcript text) in one language and wants it translated to another, with punctuation-bounded re-segmentation so cues end at real sentence breaks. Simplified Chinese (zh-CN) and English (en) are first-class targets; other targets follow the same rules. Outputs a target-language SRT or bilingual SRT — no audio, no burn-in. Triggers — "翻译字幕", "翻成中文", "translate this SRT", "中英双语字幕", "把这个 SRT 翻译成 X", "bilingual subtitles".

AI & Automation 107 stars 15 forks Updated 3 days ago MIT

Install

View on GitHub

Quality Score: 86/100

Stars 20%
68
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

# wjs-translating-subtitles Source-language SRT in → target-language (or bilingual) SRT out. **This skill is text-only.** Burn-in lives in `/wjs-burning-subtitles`; voice dub in `/wjs-dubbing-video`. ## When to use - User has an SRT in language A and wants it in language B. - User pasted a transcript (with or without timestamps) and wants a translation that becomes an SRT. - User has an SRT but cues end mid-sentence — this skill's re-segmentation step fixes that. ## When NOT to use - No source-language SRT yet → run `/wjs-transcribing-audio` first. - User wants burned-in subtitles → finish translation here, then `/wjs-burning-subtitles`. - User wants voice dub → finish translation here, then `/wjs-dubbing-video`. ## Pick the target Resolve target from the user's phrasing once, don't re-ask: - "翻成中文 / 中文字幕 / 中文配音" → `zh-CN`. - "translate to English / English subs / English dub" → `en`. - "bilingual" / "双语" → produce both `.<source>.srt` and `.<target>.srt` (and optionally a combined `.<source>-<target>.srt`). - Ambiguous → default to whichever the user has historically chosen in the project. Simplified Chinese and English are fully validated. Other targets (Japanese, Korean, French, etc.) work via the same rules; the bottleneck is TTS-voice availability if dubbing follows — see `/wjs-dubbing-video` before promising. ## Shared translation principles - Prioritize meaning over literal wording. - Use concise subtitle-style language — viewers read at ~3 wps for Chinese, ...

Details

Author
jianshuo
Repository
jianshuo/claude-skills
Created
2 months ago
Last Updated
3 days ago
Language
Python
License
MIT

Integrates with

Bundled in these plugins

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Solid

wjs-transcribing-audio

Use when the user has audio or video and wants a timestamped transcript (SRT) in the source language. Routes by source language — Chinese defaults to Volcano (豆包) ASR; other languages (Spanish, English, Portuguese, French, Italian, Japanese, Korean, etc.) use OpenAI Whisper API with word-level timestamps and self-assembled cues. Outputs SRT with punctuation-bounded cues capped for on-screen reading. Triggers — "转写", "转成字幕", "做 SRT", "transcribe", "make subtitles", "speech to text", "出字幕".

107 Updated 3 days ago
jianshuo
Code & Development Solid

wjs-dubbing-video

Use when the user has a video + a target-language SRT and wants the video to actually speak that language — generates a time-aligned TTS voice dub. Routes by voice ID — Volcano (豆包) TTS for Chinese, edge-tts neural for any language. Defaults to one voice (single-speaker); opt-in multi-speaker via visual diarization. Outputs `*_<lang>_dub.mp4` with the dub audio in place of the original. Final mixing (audio bed + burn-in) is handed off to `/wjs-burning-subtitles`. Triggers — "配音", "中文配音", "Chinese dub", "voice over this", "dub the video", "TTS this SRT", "different voice for each speaker".

107 Updated 3 days ago
jianshuo
AI & Automation Solid

wjs-burning-subtitles

Use when the user has a video + an SRT and wants the subtitles either burned into the pixels (libass, always-visible) or soft-muxed as a togglable track. Also handles the final composite step for the localization pipeline — burn subs, mix a dub track, and keep the original audio as a low-volume bed, all in ONE ffmpeg encode (no cascade). Verifies libass availability and auto-downloads a static evermeet ffmpeg build when Homebrew's stripped binary lacks it. Triggers — "烧字幕", "硬字幕", "burn subtitles", "burn-in subs", "embed subtitle", "soft mux SRT", "把字幕烧进视频", "做最终合成".

107 Updated 3 days ago
jianshuo