The problem after the cut
The edit is finished; the captions are not. The master SRT is timed against the full-length source, so a clip that starts 3:42 into the recording uses 00:00 as its time zero, not the source video's 3:42. The first retained cue may appear later. Doing this by hand means finding every caption inside the range, copying it into a new file, subtracting the clip start from both timestamps, renumbering the cues and naming the file — repeated for every clip, and again after every revision.
What is a clip-relative subtitle file? A clip-relative subtitle file uses the clip start as time zero; each retained cue is re-timed relative to that point, and the first cue may begin later than 00:00:00,000 — the first frame of a single video clip — instead of the full-length source video's timeline. You create one by subtracting the clip's start time from every caption timestamp in the master SRT. Read what a clip-relative subtitle file is for the full definition and the maths.
What you have
- 1 full-length video + its master SRT
- 1 clip list: name, start, end per clip
What you deliver
- 1 clip-relative SRT per clip
- 1 plain-text transcript per clip
- 1 manifest + 1 ZIP
The workflow
- Export one SRT for the whole source. Keep it untouched — it stays the single source of truth for every clip.
- List the clips in a CSV. Three columns:
name,start,end. Copy the in/out points straight from your timeline. - Run the batch splitter. Every row is validated with its row number; captions that cross a boundary are trimmed or excluded per clip.
- Deliver the ZIP. One SRT and TXT per clip under
srt/andtxt/, plus a manifest that records range, caption count and policy.
Try it with the example master SRT and example clip CSV on the batch SRT splitter — no sign-up needed to load and review them.
Clip-relative time, in one line
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
Clip-relative time = source cue time − clip start time, computed in whole milliseconds. Because the same master SRT is reused for every clip, two clips can never disagree with each other.
Who this is for
- Freelance editors delivering interview or podcast cuts with 10–50 clips per project.
- Short-form studios shipping daily clip batches for several clients who need consistent filenames.
- Podcast teams repurposing one episode transcript into Shorts, Reels and TikToks — see podcast clip subtitles.
- Course producers splitting a long recording into lessons that each start at 00:00 — see course module subtitles.
- Content marketing teams where the person cutting the video is not the person who made the captions.
Revisions are the real cost
The first export is rarely the last: a clip moves 4 seconds, a client asks for a different opening, one range turns out to be silent. When the timeline lives in a CSV, a revision is a one-row edit and a re-run — not twenty files reopened by hand. The master SRT guide walks through that loop end to end.
The clip CSV, exactly
Three columns are required — name,start,end — one row per clip. Times must use the full form HH:MM:SS.mmm with dots or commas for milliseconds:
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
Every row is validated before anything is exported, and every message names the row number: missing columns, empty names and duplicate names block the export, as does an end time that is not after the start time. A range with no captions, overlapping ranges and ranges past the end of the SRT are warnings, not errors — they are listed separately and never silently dropped.
What happens at the boundaries
A caption that starts before a clip or ends after it crosses the boundary. You choose per clip: trim it to the boundary (the default), so the clip keeps only the part inside its range, or exclude it, so the partial caption appears in neither file. The choice is recorded per clip in the manifest, which is what makes a later re-run reproduce the same files.
What the manifest records
Every ZIP ships a manifest.csv at its root — one row per clip, so a reviewer or client can audit the delivery without opening a single subtitle file:
name,start,end,duration,caption_count,boundary_policy,warning_count,srt_file,txt_file
When a range misbehaves
- 0 captions in a range — warned, not blocked. Silent b-roll is a real deliverable; decide per clip whether to ship the empty pair.
- Overlapping ranges — allowed and flagged. Recaps and repeated segments can legitimately appear in two clips.
- Duplicate clip names — blocked, because two files cannot share a name. Rename one row.
- Unparseable timecode — blocked with the raw value shown. Times must match
HH:MM:SS.mmm; a typo like00:80:00cannot silently produce an empty file.
Subtitles for video clips FAQ
- How do I create a separate SRT file for each clip?
- Export one SRT for the full-length source video, list every clip in a CSV with name, start and end, then run the batch SRT splitter. Each row produces its own re-timed SRT and TXT pair.
- Why do the subtitles start at the wrong time after cutting a video?
- The captions are still timed against the full-length source. A clip that starts at 3:42 uses 00:00 as its time zero, so every kept timestamp has the clip start subtracted from it; the first retained cue may appear later.
- What happens to a caption that spans two clips?
- It overlaps both ranges. Either trim it at the boundary so each clip gets only the part inside it, or exclude it so it appears in neither. The choice is recorded per clip in manifest.csv.
- Does the video itself get uploaded?
- No. The workflow only needs the master SRT and the clip timeline CSV — the video never leaves your machine.
- What do I do when the edit changes?
- Update the CSV row for that clip and run the export again. The same master SRT and timeline reproduce the same deliverables, so revisions do not require redoing the other clips.
- How many clips can one run handle?
- The free plan covers 3 projects per UTC day with up to 100 captions per project in the master SRT. Studio removes both limits. The recommended CSV size is up to 1,000 rows.
- Can I fix one row and re-run without redoing everything?
- Yes. Only the CSV changes; the master SRT stays untouched. Clips whose ranges did not change reproduce identical files, so a fix is a one-row edit and a re-run.
- Which timecode format does the CSV require?
- The full form HH:MM:SS.mmm, with dots or commas for milliseconds. Shorter forms are rejected with the raw value shown, so a typo can never silently produce an empty file.
Generate subtitles for every clip in one run
Upload the master SRT, drop in the clip timeline CSV, review each clip and download the whole delivery package.
Generate subtitles for my clips