Subtitle timing shifter

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 TO
FRAME 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.

Questions people ask

Something not covered? [email protected] reaches a person.

How do I know how far to shift?

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.

Other free tools

All tools

Sync problems start upstream

Captions timed to the word from the start don't drift. Upload the video and we'll time them properly — five dollars a month.

Add captions free