⏱️ Subtitle Shifter (Resync)
Captions running early or late? Shift every cue by a set number of seconds to resync — SRT or VTT, all locally.
Positive delays the subtitles, negative moves them earlier.
Everything runs locally in your browser — your subtitles are never uploaded.
How the subtitle shifter (resync) works
When subtitles are consistently ahead of or behind the audio, every cue needs moving by the same amount. Enter a shift in seconds — positive to delay the subtitles (they appear later), negative to move them earlier — and the tool adds that offset to every cue's start and end time, keeping the text and format (SRT or VTT) unchanged. Times can't go below zero, so leading cues clamp to the start.
This fixes a constant offset — the whole track being a second or two out — not drift, where the gap grows over the film (a frame-rate mismatch, which needs stretching rather than shifting). Work out the offset from one known line: if a caption shows at 00:10 but should be at 00:12, shift by +2 seconds. It's pure text math done on your device.
Frequently asked questions
How do I resync subtitles that are out of sync?
Load the SRT or VTT, find how many seconds off one line is, and enter that as the shift — positive if the subtitles are early (to delay them), negative if late. Every cue moves by that amount; download the fixed file.
Does it work for both SRT and VTT?
Yes — it detects the format from the file and keeps it. SRT stays SRT (comma milliseconds, numbered), VTT stays VTT (WEBVTT header, dot milliseconds).
What if the subtitles drift more over time?
A constant shift only fixes a fixed offset. If the gap grows through the video, that's a frame-rate mismatch that needs time-stretching, not shifting — this tool handles the common constant-offset case.
Are my subtitles uploaded?
No — the shift is calculated in your browser and nothing is sent anywhere. It works offline.