subtitle-srt-export
Turn the measured word-level timings into a ready-to-upload .srt file. No API
call, never mutates input.json, safe to re-run.
Why this skill exists
elevenlabs-tts writes accurate per-word timings into input.json's
subtitles[].words[]. Those word timings are perfect for an on-screen karaoke
render but are too granular for a subtitle file — a platform wants a handful of
readable cues, not one cue per word. This skill groups the words into cues and
emits valid SRT.
Inputs
A job folder path whose input.json already contains measured word timings
(run elevenlabs-tts first). Each word is
{word, start, end} under subtitles[].words[].
Usage
bash skills/subtitle-srt-export/scripts/export_srt.sh <job-folder>
Example (the bundled demo job):
bash skills/subtitle-srt-export/scripts/export_srt.sh examples/demo-job
Cue grouping rules
A new cue starts when any of these is true:
- the previous word ended a sentence (
.,?,!) - the current cue would exceed ~3.5 seconds
- the current cue would exceed ~10 words
Tune the $maxdur / $maxwords constants at the top of the jq block to taste.
Output
Writes <job>/subtitles.srt and prints:
Wrote <job>/subtitles.srt with <N> cues from <M> words
On a missing-timings precondition failure it prints an ERROR: line and exits
non-zero — run elevenlabs-tts first.
