Fix subtitles that run early or late
When subtitles drift from the audio by a constant amount, shifting every timestamp fixes them in one pass.
Tools used in this guide
The job
A subtitle file that runs a second and a half early makes every line appear before it is spoken. If the gap is the same from start to finish — common when the video was trimmed or the subs were made for a different cut — a fixed offset fixes the whole file.
How to do it
Open the .srt or .vtt in a text editor, copy the whole contents, and paste them in. Measure the gap first — pause when a line is spoken and compare with the on-screen cue — then enter the offset: positive delays the subtitles, negative makes them earlier. Copy the result back or download it as a file.
- Subtitles ahead of the audio → enter a negative value (e.g. −1.5 seconds).
- Subtitles behind → positive value.
- Timestamps that would go below zero are clamped to the start and counted, so you can see if any cues were affected.
Worked example
A VTT where every cue appears 1.5 s too early: paste the file, enter −1.5 seconds, run, and every `00:01:23.400` becomes `00:01:21.900`. Save the result as `shifted.vtt` and reload it in the player.
Limits
A fixed offset only. If the gap starts small and grows over the film, the file needs a frame-rate conversion (23.976 vs 25 fps timing), not a shift — this tool does not do that. Cue text and numbering pass through unchanged; only timestamps on timing lines are touched.