Free tool · runs in your browser

Free SRT Shifterdelay or advance subtitles in one pass

Subtitles running two seconds early? Or one second late? Paste the .srt (or .vtt), type the shift, download the corrected file. Pure-browser, no upload — your subtitle file never leaves your device.

Detected: SRT

Runs entirely in your browser. The subtitle file never reaches our servers — no upload, no signup, no rate limit.

How it works

From a desynced subtitle file to a clean handoff in 3 steps.

No setup. No installs. Same workflow whether the file is 20 lines from a TikTok clip or 4,000 lines from a 6-hour conference recording.

  1. 01

    Paste or open the SRT/VTT

    Drag the file into the Open file button, or paste the contents. The format gets auto-detected.

  2. 02

    Type the shift amount

    Number = seconds. Use `2` for two seconds forward, `-1.5` for 1.5 seconds backward, or write a timestamp like `00:00:02,500`.

  3. 03

    Download the corrected file

    Click Download to save the shifted .srt or .vtt — or Copy straight to clipboard. Drop into YouTube, Premiere, VLC, or send it to your editor.

What’s in the box

A pass that respects your file — same cues, same text, new timing.

Cue text, speaker labels, indices, and the WEBVTT header pass through untouched. Only the timestamp pairs move.

Both SRT and VTT

Auto-detected from the timestamp punctuation. Commas → SRT, dots → VTT. Round-trip preserved.

Flexible shift syntax

Seconds, milliseconds, MM:SS, HH:MM:SS, or a full HH:MM:SS,mmm timestamp. Whichever feels natural.

Negative shifts allowed

Pull cues earlier when the subtitles run late. Cues that would land before 00:00:00 clamp instead of disappearing.

Runs in your browser

No upload, no server. The file never leaves your device — works offline once the page is open.

Copy or download

Save the shifted file with one click or copy straight to clipboard for paste into your editor.

Free, no account

No signup, no rate limit, no per-file cap. Use it on a 20-line clip or a 6-hour conference recording.

Common questions

8 questions people ask about subtitle shifting.

01What does this tool do, exactly?+
It moves every cue's start and end timestamp by the same amount. If your subtitles are running two seconds early, type "2" and download — every cue is now two seconds later. Negative shifts work too ("-1.5" pulls everything 1.5 seconds earlier).
02What formats does it accept?+
SRT (SubRip) and VTT (WebVTT). The tool auto-detects which one you pasted from the timestamp punctuation (SRT uses commas, VTT uses dots). Everything that isn't a `HH:MM:SS,mmm --> HH:MM:SS,mmm` arrow line passes through untouched — speaker labels, cue text, indices, the WEBVTT header, all preserved.
03How do I write the shift amount?+
Several formats accepted: a bare number is seconds (e.g. `2` = 2 seconds, `2.5` = 2.5 seconds). Add `s` (`2s`) or `ms` (`2500ms`) to be explicit. Or write a timestamp directly: `0:02`, `0:02.500`, `00:00:02,500`. All work. Negative values for backward shifts.
04What happens if a shift pushes a cue before zero?+
The cue is clamped to 00:00:00,000 — never silently dropped. If you shift a file backward by 5 seconds but the first cue starts at 00:00:02, that cue becomes a 0-second start with the original end. You'll see it visually in the output and can decide whether to trim it manually.
05Does my file leave my browser?+
No. The shifter runs entirely in your browser via JavaScript. The subtitle text never reaches our servers. Open the page once, then turn off Wi-Fi — it still works. There is no upload, no signup, no rate limit.
06Can I shift only part of the file?+
Not in this tool — every cue gets the same shift. For range-based shifts (e.g. "only shift cues after 00:10:00"), paste the affected section into the textarea, shift it, then copy it back into your editor. Most desync problems are file-wide drift from a wrong frame rate, which this tool handles in one pass.
07Why does my video go out of sync more the longer it plays?+
That's frame rate drift, not a constant offset — typically 23.976 fps vs 25 fps mismatch. A constant shift won't fix it; you need a rate-rescale. We don't ship a rate-rescaler yet (drop us a note at [email protected] if you want one). For now, Aegisub or Subtitle Edit handle the frame-rate case well.
08What's the difference between this and editing in VLC?+
VLC can apply a shift at playback time without modifying the file. That works for one-off viewing but doesn't help if you're uploading to YouTube, importing into Premiere, or sharing with a collaborator — they'll have to apply the same shift again. This tool produces a corrected file you can hand off.

Need to redo the subtitles entirely? Free plan covers 30 min / month.

Sometimes the timing is too far off to rescue. Drop the source audio or video and we’ll generate a fresh SRT with speaker labels in 100+ languages. Free account: 30 minutes a month. Pro at $19/mo lifts that to 600 minutes plus native diarization and every export format.

Sign up free

Already a customer? Open the dashboard