Subtitle Timing Shifter
Shift or stretch SRT and VTT subtitle timing to fix out of sync captions in your browser, no upload.
- Runs in your browser, files never leave your device
- Free, open source, no account, no ads
- Works offline after the first visit
Shift subtitle timing
Drop an .srt or .vtt file or choose a file
Nothing is uploaded. Everything happens on this device.
Type when two lines are really spoken. Everything in between is stretched to match, which fixes subtitles that drift out of sync.
Typical case: subtitles made for a 25 fps (PAL) release drift later and later on a 23.976 fps file.
Example: subtitles show up two seconds late. Shift by -2.0 and a cue at 00:00:05,000 moves to 00:00:03,000.
| # | Old start | New start | Text |
|---|
How it works
- Load your subtitles. Drop an .srt or .vtt file, or paste the text. It is read on your device, never uploaded.
- Fix the timing. Shift by a fixed amount, sync two lines to their real times to fix drift, or convert between frame rates. The table shows old and new times live.
- Save the synced file. Download it in the same format with “synced” added to the name, or copy the text. Cue text, tags and styling stay exactly as they were.
Questions, answered
Are my subtitle files uploaded anywhere?
No. Subtitle Timing Shifter runs entirely in your browser. Your file is read into memory on your device, processed with JavaScript, and never sent to a server. You can disconnect from the internet and it keeps working.
The subtitles start in sync but drift later. How do I fix that?
A constant offset will not help with drift. Use Two-point sync: enter the real start time of an early line and of a late line, and every cue is stretched between them. If the drift comes from a frame rate mismatch, for example 25 fps subtitles on a 23.976 fps video, the Frame rate tab does the same with one click.
Will it change my text, styling or encoding?
Only the time codes change. Cue numbers, identifiers, italics and other tags, WebVTT headers, notes and position settings are kept as they were, along with the original line endings. Files in older encodings such as Windows-1252 or UTF-16 are saved as UTF-8, and the tool says when that happens.
Is it really free?
Yes. It is open source under the MIT license, with no account, no daily limits and no ads. If it saves you a paid subscription, you can say thanks on Ko-fi.
Does it work offline?
Yes. After your first visit the page is cached by a service worker, so it loads without a connection. You can also install it from your browser's menu as an app.
Was this written by AI?
Yes. Subtitle Timing Shifter was generated by Claude Code from a written specification inside an automated pipeline, with a test suite that runs in a real browser. The full source is on GitHub, so you can read every line before you trust it with your files.
Built by one person, given away for free
Subtitle Timing Shifter is a free alternative to paid tools like Subtitle Tools Sync and online subtitle shifters. If it earns a place in your bookmarks, a coffee keeps the updates coming.
☕ Support Or on Ko-fi