Fix out-of-sync subtitles (SRT / VTT)
The most common subtitle problem: the file is fine, but every line shows up a second or two off from the audio. The fix is to shift every timestamp by the same amount — no re-download, no video editing.
✓ Runs 100% in your browser. Nothing is uploaded. No signup, no ads.
Which direction do I shift?
| Symptom | Fix |
|---|---|
| Subtitles appear before people speak (too early) | Shift later (+) |
| Subtitles appear after people speak (too late) | Shift earlier (−) |
How to resync
- Open Subtitle Toolbox and drop in your
.srtor.vttfile. - Estimate the offset: pause on a distinctive line and compare when it's spoken vs when it's shown. One second = 1000 ms. Typical fixes are 500–3000 ms.
- Enter the amount under Resync and click Shift later (+) or Shift earlier (−).
- Download, test in your player, and repeat with a smaller amount if it's still slightly off. The output stays in the same format the input was in.
If a shift would push a cue before 00:00, it's clamped at zero and the tool warns you — nothing silently breaks.
Constant offset vs. progressive drift
Be honest with yourself about which problem you have, because they need different fixes:
- Constant offset — wrong by the same amount at minute 1 and minute 90. A single shift fixes it. This is the common case (different intro/logo lengths between releases).
- Progressive drift — starts in sync, ends seconds off (or vice versa). That's a frame-rate mismatch (e.g. 23.976 vs 25 fps) or a different cut. A constant shift cannot fix this; you need a subtitle file made for your exact release, or a tool that linearly rescales timestamps. This tool doesn't rescale — better to say so than half-fix your file.
FAQ
Is my file uploaded anywhere? No — the page has no backend and sends no network requests with your data.
Does shifting change the text or formatting? No. Only the timestamps move; text, line breaks and tags stay exactly as they were.
Player needs a different format? The same page converts: SRT → VTT or VTT → SRT.