Clip Caption Kit

How to Split One Master SRT for Multiple Video Clips

Export one SRT for the full source video, prepare a CSV with each clip's name, source start and source end, then batch-extract the matching captions. Re-time each result by subtracting the clip start, renumber the cues and export the files under the clip names.

Published and maintained by Clip Caption KitLast updated:

Step 1 — Prepare the two inputs

The master SRT

Export subtitles for the full-length source and keep it untouched. Every clip file is derived from it, so it stays the single source of truth — never edit a derived clip file and expect the change to survive a re-run.

The clip timeline CSV

Three required columns: name,start,end. Copy the in/out points from your editing timeline. Extra columns are ignored, and both HH:MM:SS.mmm and HH:MM:SS,mmm work.

name,start,end
intro,00:00:15.000,00:00:45.000
clip-01,00:03:42.000,00:04:18.000
clip-02,00:08:14.000,00:09:02.000

Download the example CSV or the blank template.

Step 2 — What happens to each caption

For every row, captions are kept when they overlap the range, re-timed against the clip start and renumbered from 1:

Master cue:        00:03:45,500 --> 00:03:48,000   "so today we ship it"
Clip:              clip-01 00:03:42,000 --> 00:04:18,000
Overlap check:     03:45,500 > 03:42,000 and 03:48,000 < 04:18,000  → fully inside
Re-timed:          00:00:03,500 --> 00:00:06,000
Renumbered:        cue 2 of clip-01 (after the 03:43 caption)

A caption that starts before the clip or ends after it is a boundary caption: trim it to the boundary (the default) or exclude it. All of this is computed in whole milliseconds, so the same input always produces the same output. The results are clip-relative subtitle files: cue timings measured from the clip's first frame (00:00:00,000) rather than the source video's timeline.

Step 3 — Run it and review

  1. Open the batch SRT splitter and upload both files.
  2. Fix anything the row-level validation reports — each message names the row and shows the original line.
  3. Review each clip: caption count, boundary warnings and the safe filename that will actually be written.
  4. Export one ZIP with srt/, txt/ and manifest.csv.

Three ways to do this, compared

MethodStrengthWatch out for
By handZero setup, fine for one clipTime subtraction, renumbering and naming are repeated for every clip and every revision
A scriptFully automated once writtenBoundary captions, duplicate names and encoding edge cases are yours to maintain
Clip Caption KitCSV in, audited ZIP out, with the manifest recording every decisionRequires signing in; the free plan covers 3 projects per UTC day with up to 100 captions per project

Revisions: change the CSV, not the files

Because the timeline lives in the CSV, a revision is a one-row edit and a re-run. Two properties make this safe: the master SRT is never modified, and manifest.csv records the range, caption count, boundary policy and warning count for every clip in the package, so a reviewer can audit the delivery without opening the files.

Edge cases worth knowing

  • 0 captions in a range — warned, not blocked; silent b-roll is a real deliverable.
  • Ranges past the end of the SRT — warned so a typo like 00:80:00 cannot silently produce an empty file.
  • Duplicate clip names — blocked, because two files cannot share a name; rename one row.
  • Unsafe characters in names — previewed with the cleaned filename shown next to the original.

Master SRT splitting FAQ

Do I need one SRT per clip before using the batch workflow?
No. The whole point is the opposite: you keep exactly one master SRT for the full-length source, and every clip file is generated from it.
What if two clip ranges overlap?
Overlapping ranges are allowed and warned about, because they are sometimes intentional (a cold-open that repeats the intro). Each range is processed independently, so both clips get complete captions.
What happens to a range with no captions?
It is reported as a warning, not an error. Silent b-roll is a legitimate clip — you decide whether to export an empty file pair or fix the range first.
How do revisions work?
Edit the affected rows in the CSV and run the export again. The master SRT stays untouched, so only the changed clips move — and manifest.csv records the new state of the whole package.
Should I use a script instead?
A script works once you have written and tested it. The three failure modes — boundary captions, renumbering, filename safety — are exactly the parts that take longest to get right, which is what the batch tool already handles.

References

Open the batch SRT splitter

Bring the master SRT and the clip CSV — the re-timing, renumbering and packaging are one click from there.

Open the Batch SRT Splitter