Batch SRT splitter
English

Batch Split One SRT into Multiple Subtitle Files

Upload one master SRT and a CSV of clip names, start times and end times. Generate separate, re-timed SRT and TXT files for every clip in one ZIP — without copying captions or recalculating timestamps by hand.

Published and maintained by Clip Caption KitLast updated:

CSV format and example

Three columns are required. Every row becomes one output file pair, named after the clip.

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 clip CSV or the blank template, and the example master SRT to run a full export without your own files.

How batch SRT splitting works

  1. Upload the master subtitles exported for the full-length source video, podcast or webinar.
  2. Upload the clip timeline CSV. Every row is validated with its row number and original line shown for anything that needs fixing.
  3. Review each clip: caption count, boundary warnings, the safe filename actually used, and the first and last caption. Then export one ZIP.
Manual workflowClip Caption Kit
Search the master SRT for every rangeRead all ranges from one CSV
Copy captions into separate filesGenerate all clip files together
Subtract each clip start time by handRe-time every caption automatically
Renumber and rename files manuallyConsistent numbering and filenames
Repeat for every revisionRe-run the same project deterministically

What files are included in the ZIP

Each clip leaves with the same pair of files, and the manifest makes the package auditable without opening a single one:

episode-042-shorts-deliverables.zip
├── srt/
│   ├── opening-highlight.srt
│   ├── clean-excerpt.srt
│   └── silent-b-roll.srt
├── txt/
│   ├── opening-highlight.txt
│   ├── clean-excerpt.txt
│   └── silent-b-roll.txt
└── manifest.csv

How clip-relative timestamps are calculated

For every caption inside a clip, the clip start time is subtracted in integer milliseconds — never floating point — and the result is written back in standard SRT format:

Source cue:        00:03:45,500 --> 00:03:48,000
Clip starts:       00:03:42,000
						Clip-relative cue: 00:00:03,500 --> 00:00:06,000

That subtraction is 03:45.500 − 03:42.000 = 00:03.500; the first retained cue may begin later than 00:00:00,000.

Captions are renumbered from 1 in every file, and no timestamp can be negative, so each file is valid on its own. “Clip-relative”, “re-timed”, “reset to 00:00” and “zero-based” all describe this same shift — see clip-relative subtitles for the full definition. Every timestamp is measured from the clip's first frame, and the first retained cue may begin later than 00:00:00,000.

For a reproducible proof, view the input, output and verification method.

Boundary caption handling

A caption that crosses a clip start or end can be trimmed to the boundary (the default) or excluded entirely. The policy is chosen per clip in the review step and recorded in manifest.csv, so a revision months later reproduces the same result.

The full walkthrough — including the manual method and the timestamp formulas — is in How to Split One Master SRT for Multiple Video Clips, and the scenario page explains what editors and podcast teams use it for on the subtitles for video clips page.

Batch SRT splitter FAQ

How does batch SRT splitting work?
Upload one master SRT and a CSV where every row defines one clip with name, start and end. Clip Caption Kit keeps the captions that overlap each range, re-times them against the clip start, renumbers them and packages one SRT and TXT per clip with a manifest in a single ZIP.
Which CSV columns are required?
name, start and end. Every row defines one output clip. Extra columns are ignored. Times accept HH:MM:SS.mmm and HH:MM:SS,mmm, and files exported from Excel or Sheets with quotes and CRLF line endings are handled.
What happens when a row is wrong?
Nothing is exported. The review step reports the row number and the raw line for every problem: missing columns, empty names, duplicate names, invalid timecodes and end times that are not after the start time. Warnings — a range with no captions, ranges that overlap, ranges past the end of the SRT — are listed separately and do not block the export.
What files are included in the ZIP?
One SRT and one plain-text TXT per clip under srt/ and txt/, plus manifest.csv at the root. The manifest records each clip's name, start, end, duration, caption count, boundary policy and warning count.
Are the timestamps reset for every clip?
Yes. The clip start becomes 00:00:00,000 on the clip-relative timeline; a first cue may begin later when no caption overlaps the clip start. For example, 03:45.500 − 03:42.000 = 00:03.500.
Do I need an account?
You can upload, validate and review everything without one. Generating the ZIP requires signing in — the free plan includes 3 projects per UTC day with up to 100 captions per project, and Studio removes both limits.
Are my files uploaded?
Yes, so the deliverables can be generated. Uploaded sources and the exported packages are stored only for processing and deleted after 24 hours.

References