← ClaudeAtlas

burn-subtitleslisted

Burn karaoke-style word-timed subtitles into a video. Takes a transcript JSON with word timestamps and a video, emits a new video with subtitles rendered in. Renders text as a PNG overlay sequence (the local ffmpeg build has no libass/drawtext).
jperrello/C0BALT_CUT · ★ 2 · Data & Documents · score 68
Install: claude install-skill jperrello/C0BALT_CUT
# burn-subtitles Word-timed subtitle burn-in for shorts. Highlights the current word, no manual sync. ## Invoke ``` .claude/skills/burn-subtitles/burn-subtitles.sh <input> <transcript.json> <out> [style] [font_size] ``` - `input`: video path - `transcript`: path to JSON. For `style=chunks` (default) this is a `chunks.json` from the `chunk-captions` skill. For other styles it's a `transcribe` output JSON. - `out`: output video path - `style` (optional): `chunks` (default) | `line` | `word-karaoke` | `selective` - `font_size` (optional): default `72` ## Output mp4 with subtitles burned in. Same dimensions, audio stream-copied. Prints the output path to stdout. Idempotent: skips work if `out` is newer than both inputs. ## Styles - `chunks` (default): consumes a `chunks.json` from the `chunk-captions` skill. Each chunk is shown as a complete phrase for its `[t0, t1]` window; the currently-spoken word is rendered cyan, all other words white. Chunks hard-cut between each other — no scrolling, no fade. Kills the per-word slide-up that made the legacy `word-karaoke` style hard to read. - `line`: one plain line per transcript segment. - `word-karaoke` (legacy): rolling window of up to 4 words, tied to word timestamps. Each word slides up 8px over 80ms at its own `t0` and hard-cuts off when bumped or after a >0.6s speech gap. Deprecated for shorts — feedback showed the constant scroll was hard to follow. - `selective`: only burns segments overlapping high-RMS-ener