Help us improve
Share bugs, ideas, or general feedback.
Translates subtitle blocks between languages while enforcing broadcast constraints: 42 chars per line, max two lines, and readable speed for viewers.
npx claudepluginhub ur-grue/autopunk-media-skills --plugin autopunk-media-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/autopunk-media-skills:subtitle-translatorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Translates subtitle blocks from one language to another while respecting broadcast subtitle constraints: a maximum of 42 characters per line, no more than two lines per block, and a reading speed that allows viewers to watch the screen at the same time.
Reformats and rewrites subtitle text for timing, readability, and on-screen clarity, following broadcast subtitle standards. Useful for correcting auto-generated transcripts, adapting subtitles between platforms, and fixing line breaks and reading speed.
Translate captions into another language (or produce bilingual captions) while preserving segment count, timing, speaker labels, AND source punctuation density (no inserted em-dashes, parentheses, or bracketed glosses unless the source had them — downstream rendering shows every character). **Primary path uses this session's LLM directly — no API key, no model config.** Trigger on "translate captions", "翻译字幕", "翻译成中文/英文", "make bilingual subtitles", or "translate this" when working with caption files. CLI `lai translate run` is the secondary path for headless / oversized runs.
Translates SRT/VTT/ASS caption files and YouTube transcripts to other languages with context-aware LLM processing and bilingual output. Claude default; optional Gemini API.
Share bugs, ideas, or general feedback.
Translates subtitle blocks from one language to another while respecting broadcast subtitle constraints: a maximum of 42 characters per line, no more than two lines per block, and a reading speed that allows viewers to watch the screen at the same time.
Required: The subtitle blocks in the source language, each with its timecode and original text; the source language; the target language
Optional: The intended platform (broadcast television, streaming, festival, online); whether the programme is documentary, drama, news, or entertainment (affects register); any glossary or character name spellings that must be kept consistent; the total programme duration (helps the assistant calibrate reading-speed targets)
Format to provide subtitle blocks in:
00:02:14,500 --> 00:02:17,200
Original subtitle text here,
second line if present.
Subtitle blocks returned in the same format as the input — timecode preserved, translated text below. Each block presented as:
00:02:14,500 --> 00:02:17,200
Translated line one here,
line two if needed.
After the translated blocks, a brief translator's note listing: any blocks where meaning was condensed to meet line or timing limits, any culturally specific terms that required adaptation, and any blocks that need human review before delivery.
Maximum two lines per block. Maximum 42 characters per line. Lines broken at a natural syntactic boundary — not mid-phrase.
Source language: Spanish Target language: English Platform: Documentary, festival submission
00:01:03,100 --> 00:01:06,400
Cuando llegamos al pueblo por primera vez,
no teníamos nada. Absolutamente nada.
00:01:06,800 --> 00:01:09,500
Los vecinos nos dieron comida, ropa,
un lugar donde dormir esa primera noche.
00:01:10,000 --> 00:01:12,800
No lo olvidaremos nunca.
Nunca.
00:01:03,100 --> 00:01:06,400
When we first arrived in the village,
we had nothing. Absolutely nothing.
00:01:06,800 --> 00:01:09,500
Neighbours gave us food, clothes,
somewhere to sleep that first night.
00:01:10,000 --> 00:01:12,800
We will never forget that.
Never.
Translator's note: All three blocks fall within the 42-character-per-line limit. Block 2: "Los vecinos" is rendered as "Neighbours" (British English spelling assumed for festival submission; change to "Neighbors" for US delivery). "Un lugar donde dormir" is condensed from "a place where we could sleep" to "somewhere to sleep" to preserve the line limit without altering meaning — no flag required. Block 3: The speaker's deliberate repetition of "Nunca / Nunca" is preserved as "Never / Never" — this is a rhetorical choice in the source and should not be merged into a single line.