01 / Fast steps
- Drop or select the subtitle file, .srt or .vtt.
- Type the shift in seconds: positive moves subtitles later, negative moves them earlier. Decimals like 1.5 or 0.25 are fine.
- Download the resynced file.
Subtitles showing two seconds after everyone speaks? Drop the .srt or .vtt file, type the offset, and every cue moves together. The corrected file comes back in its original format, and nothing is uploaded anywhere.
Your files never leave your device. This tool even works offline.
01 / Fast steps
02 / Best for
03 / Why here
04 / Keep in mind
Tool connections
Good to know
Almost always because the subtitle file was timed against a slightly different copy of the video. A version with a longer studio logo, an extra recap or a trimmed intro shifts every line by the same fixed amount, which is exactly what a constant offset repairs. The other classic cause is a frame-rate mismatch, where the error grows as the video plays; that one needs re-timing, not a shift.
Watch one clearly identifiable line. If the text appears after the words are spoken, the subtitles are late and need a negative value to move them earlier. If the text shows before anyone speaks, use a positive value to move them later. If you are unsure of the exact amount, pause on a distinctive line, note the difference between the clock of the player and the time in the subtitle file, and use that.
Their start time is clamped to zero instead of going negative, so the file stays valid everywhere. A cue that would end before zero disappears, because a caption that finishes before the video starts cannot be displayed at all.
No, and it is worth understanding why: growing drift means the subtitle file was timed for a different frame rate, for example 25 fps against a 23.976 fps video. Every timestamp is off by a percentage, not by a constant, so a fixed shift can only be right at one point of the video. That file needs to be rescaled by the frame-rate ratio, or replaced with one timed for your copy.
Yes. Free, no sign-up, no limits, and the file is processed entirely in your browser: it works even offline once the page is open.