Clip Caption Kit

How to Split an SRT File by Time Range

To split an SRT by time range, keep the captions that overlap the start and end times, decide how captions crossing those boundaries are handled, subtract the range start from every kept timestamp, clamp negatives to zero, renumber from 1 and save a new SRT. The timestamp splitter automates exactly these steps.

Published and maintained by Clip Caption KitLast updated:

When you need this

  • You cut one highlight out of a long recording and need its captions.
  • A client asks for one section “with subtitles, timed to the clip”.
  • You are checking what a captioning tool did to a range before trusting a batch run.

The tool-assisted method

  1. Open the split SRT by timestamp tool and upload the master SRT.
  2. Enter the start and end time (00:03:42.000 → 00:04:18.000).
  3. Leave “Reset timestamps to 00:00” on if the file is for the clip itself; turn it off if it must stay on the master timeline.
  4. Pick a boundary policy, review the preview, then export the SRT, TXT and manifest.

The manual method, step by step

  1. Select the captions. A caption belongs to the range when it overlaps it: caption end > range start and caption start < range end. Captions that only touch the boundary are edge cases — decide them with the boundary policy below.
  2. Handle crossing captions. Trim: clamp both timestamps into the range. Exclude: drop the caption entirely.
  3. Subtract the range start. Work in milliseconds: new_start = old_start − range_start, new_end = old_end − range_start.
  4. Clamp negatives to zero. After subtraction no timestamp may be below 0.
  5. Renumber from 1 and write the file with HH:MM:SS,mmm timings and CRLF line endings.
Range:             00:03:42,000 --> 00:04:18,000
Source cue:        00:03:45,500 --> 00:03:48,000
After subtraction: 00:00:03,500 --> 00:00:06,000

Common mistakes

  • Off-by-one-frame trimming. A caption that starts one frame before the clip looks like a 20 ms overlap; trimming fixes it silently, excluding removes a caption you wanted.
  • Forgetting to renumber. Players usually tolerate it, some do not — and a delivery reviewer will notice.
  • Float arithmetic. 3.5 s stored as 3499.99999 rounds to the wrong millisecond. Integer milliseconds only.
  • Repeating this per clip by hand. The second range costs as much as the first; the twentieth costs more in review than in typing. That is the point where the CSV workflow takes over.

Several ranges? Use the CSV batch workflow

When the ranges are a list rather than a one-off, describe them once in a CSV and run the batch SRT splitter. The master SRT guide covers the whole loop including revisions.

Splitting SRT by time range FAQ

Do I have to renumber the cues myself?
No. After the cues are selected and re-timed they are numbered from 1 continuously. A file that starts at cue 47 is rejected by some players, which is why the renumbering happens as part of the split.
Which millisecond separator should the output use?
Standard SRT uses a comma: 00:00:03,500. Clip Caption Kit accepts both separators on input and always writes commas on output.
Why can a caption be longer than the range?
It cannot — with the trim policy the caption is clamped to the range, so end − start never exceeds the range length. If a caption seems too long, check that the range start is not later than you intended.
What is the difference between this and splitting into two files?
Splitting keeps both halves; extracting a range keeps only the middle and discards the rest. Use the SRT splitter for two files and the timestamp tool for one range.
Can I extract several ranges in one go?
Not by hand-typing them one at a time — describe each range in a CSV with name, start and end and run the batch splitter instead.

Run the same split for every clip

Put the ranges in a CSV once and generate clip-relative SRT and TXT files for all of them in one ZIP.

Batch split my SRT