Fix overlapping SRT subtitles — automatically
Two cues competing for the same screen? SRTKit detects timeline collisions in your .srt file and rewrites them into clean, non-overlapping segments. No sign-up, no forced watermark on exports, no manual retyping.
Why do SRT subtitles overlap in the first place?
Most overlapping subtitles aren't a player bug — they're a file problem that survived export. The three patterns we see most often:
Cue starts before the previous cue ends
Auto-generated captions often emit a new line the instant the speaker changes, ignoring the previous cue's --> end. Common with raw speech-to-text exports.
Cue time range fully contains another
A long scene caption sits on top of a short reaction line. Players like VLC and browsers will either hide one or stack them, both look broken on screen.
Identical timestamps across many cues
Re-syncing tools sometimes stamp a batch of cues with the same in/out pair — every cue is "overlapping" with every other cue.
Negative duration after time-shift
After you shift timing, a cue can end before it starts. Some players swallow it silently — yours isn't broken, the file is.
SRTKit treats overlap as a structural problem, not a cosmetic one. Every overlapping pair is rewritten with a deterministic policy so the output is the same every time.
How does the auto-fix actually work?
Upload an .srt file. We parse the timeline, build an interval graph, then resolve every collision in one pass.
1 · Detect
Each cue's start and end is converted to milliseconds. We flag any pair where A.start < B.end AND B.start < A.end — that's the canonical overlap test.
2 · Sort
Cues are sorted by start time, then by end time. Sorting first means our resolver never has to backtrack through the file.
3 · Resolve
For each collision we apply a policy chain: trim the trailing cue's start to the leader's end (default), or split a long cue into two when a short one fits inside it. You pick the policy; we apply it consistently.
4 · Re-emit
Clean cues are written back out as a standards-compliant SRT. No re-encoded video, no bundled media, no forced watermark on exports.
Before / after — what a fixed timeline looks like
Cue 1 was clipped at 4.5s while cue 2 started at 3.2s — a 1.3s window where both lines drew on top of each other. SRTKit trims cue 1 to end exactly when cue 2 begins.
Which overlap style do you want to handle?
Different captions need different fixes. Pick the one closest to your file:
Repair SRT timeline overlap
The general case — any two cues whose time ranges intersect. We trim, split, or shift based on the policy you choose.
Fix timeline overlap →Merge duplicate subtitle cues
Same start, same end, slightly different text. We collapse them into one cue, keeping the longest text by default.
Merge duplicates →Resolve nested subtitle ranges
Long cue contains a short cue. We split the outer cue into two halves and slot the short one between them so all three play in order.
Un-nest ranges →Fix negative cue duration
Cue ends before it starts after a bad time-shift. We swap start/end, then run the overlap resolver over the file again.
Repair duration →Shift and re-sync subtitles
Already fixed overlaps but everything is still a half-second late? Pair the overlap fix with the offset tool, then re-export.
Open shift tool →Convert fixed SRT to VTT / ASS
Once the timeline is clean, convert to WebVTT for HTML5 video