Parses an ai-video-script 3-shot script and writes an SRT subtitle file whose cues track the script's VOICEOVER per shot, time-coded with cumulative shot durations.
with:)| key | required | default | notes |
|---|---|---|---|
script |
yes | — | Full script text (the entire OUTPUT FORMAT block, including OVERVIEW + SHOT_1..N). Passed via stdin so the orchestrator does not need to write a temp file. |
output_path |
yes | — | Output .srt path. Parent dir created if missing. |
gap_ms |
no | 200 |
Tail pad subtracted from each cue's end so the subtitle vanishes ~200 ms before the next shot starts — avoids cuts clipping mid-character. |
leading_offset_ms |
no | 0 |
Shifts every cue forward by this many ms. Set to the cover/intro clip duration when the merged video prepends a title card before SHOT_1. |
VOICEOVER: none or empty contributes no SRT cue but its
DURATION_S still advances the timeline cursor.gap_ms, clamped to ≥ 800 ms
after start so very short voiceover lines remain readable.Prints the absolute path of the written .srt on stdout.
The file is UTF-8 encoded so CJK voiceover lines survive when ffmpeg
reads them via the subtitles= filter.
=== SHOT_N === blocks with DURATION_S: and VOICEOVER: fields).
Drift away from that format → zero cues, exit 1.