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
- Upload the master subtitles exported for the full-length source video, podcast or webinar.
- Upload the clip timeline CSV. Every row is validated with its row number and original line shown for anything that needs fixing.
- Review each clip: caption count, boundary warnings, the safe filename actually used, and the first and last caption. Then export one ZIP.
| Manual workflow | Clip Caption Kit |
|---|---|
| Search the master SRT for every range | Read all ranges from one CSV |
| Copy captions into separate files | Generate all clip files together |
| Subtract each clip start time by hand | Re-time every caption automatically |
| Renumber and rename files manually | Consistent numbering and filenames |
| Repeat for every revision | Re-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
- SubRip subtitle format — The `HH:MM:SS,mmm --> HH:MM:SS,mmm` cue timing and comma-separated milliseconds the parser accepts.
- RFC 4180: Common Format and MIME Type for CSV Files — The comma-separated `manifest.csv` written into every export ZIP, including its quoting and CRLF rules.