Nudge an entire subtitle file forward or back when your export drifted out of sync.
No sign-upRuns in your browserNo file size limit
SHIFT EVERYTHING BY
no change
APPLY TOFRAME RATE
Only used so the readout can be shown in whole frames.
The original file on your disk is never modified.
Captions that start in sync and drift further out as the video goes on need stretching, not shifting — that's a frame-rate mismatch, and this tool won't fix it.
Three steps, no account
01
Drop the subtitle file in
SRT, VTT, ASS, or SBV. Every cue is parsed with its start and end time.
02
Nudge until it lines up
Type an exact offset or use the presets. The table shows the before and after side by side as you go.
03
Download the corrected file
Same format, same text, same encoding — only the timestamps change.
Play the video, find a line you can hear clearly, and note the difference between when it's said and when it appears. That number, with the sign flipped, is your shift. Most out-of-sync files need somewhere between 0.5 and 2 seconds.
What if only part of the file is wrong?
Use “From cue” and give the number of the first cue that's off — everything before it stays untouched. That's the usual shape when an insert was added partway through. “Time range” does the same thing by clock time.
Can it go past the end of the video?
Shifting later can push cues beyond the end; most players simply never show them, and nothing is lost from the file. Shifting earlier is the risky direction, so anything that would start before zero is clamped to 00:00:00,000 and the panel tells you how many cues that affects.
Does it change the text at all?
No. Only the timestamps are rewritten. Line breaks, styling tags, speaker labels and encoding come through exactly as they went in — a file shifted by zero is byte-identical to the original.
My captions drift further out as the video goes on.
That's a frame-rate mismatch, not an offset, and shifting won't fix it — the gap grows with time, so no single number is right for the whole file. It usually means a 25fps file is being played at 23.976 or the other way round.