Subtitle Shift

Subtitles that arrive a second late, or drift because the video runs at a different frame rate: paste or open the SRT or WebVTT file, set the shift or the rate change, check the preview and download the retimed file. Parsing and retiming run inside your browser; the file never leaves your device. Create or edit individual cues and review timing overlaps, long lines and fast captions before downloading.

Subtitle Shift

or drop a file here. It stays on this device.

How it works

  1. Paste the subtitles or open the .srt or .vtt file. The format and the number of cues are detected; unreadable blocks are listed with their line numbers.
  2. Type the shift in milliseconds (negative to make subtitles appear earlier) and, if the video runs at a different frame rate, choose the two rates. The preview shows the first cues before and after.
  3. Choose SRT or WebVTT output, press Retime subtitles, and copy or download the file. The name carries the shift.

Questions

Which files can I use?

SubRip (.srt) and WebVTT (.vtt), with times as hours:minutes:seconds and milliseconds separated by a comma or a dot. Cue text, italics and other tags, WebVTT cue settings such as align and line, and the WebVTT header with STYLE, REGION and NOTE blocks are kept. Blocks without a readable time line are skipped and listed by line number, never guessed.

How do I fix subtitles that drift?

A constant offset is not enough when subtitles start in sync and drift later: that is a speed difference, usually because the subtitles were timed for a different frame rate. Pick the rate the subtitles were made for and the rate the video plays at; every time is multiplied by their ratio (25 to 23.976 stretches times by about 4.3 percent). You can combine that with an offset.

What happens to cues that would start before zero?

Their times are clamped to 00:00:00,000 and the page says how many were affected, so you can decide whether the shift is right. Cue order and text are never changed.

Is there a latest time?

Yes: 999:59:59.999, the most three hour digits hold and the latest time the page reads. A shift or a frame-rate change that would move any cue past it is refused, the preview and the refusal say how many cues it would affect, and nothing is written, so every file the page writes opens here again. The cue editor keeps a cue's end to the same time.

What changes when I convert between SRT and WebVTT?

SRT output renumbers the cues from 1 and drops WebVTT-only class and voice tags (c and v) that players of SRT would show as text; italic, bold and underline tags stay. WebVTT output keeps cue identifiers and settings and starts with the original header when there was one. Times are written with a comma in SRT and a dot in WebVTT.

Does it work offline?

Once the page has loaded, yes. Nothing is fetched while you retime.

Can I create or edit individual cues?

Open Create or edit individual cues. Add a caption with start and end times in seconds, or load a cue by number, edit it, and apply the change. A removal or edit can be undone. The original editor remains available. Readability hints use 20 characters per second and 42 characters per line as guides, not a broadcast certification.

Is my text uploaded?

No. The page loads a small script into your browser and every operation runs on your device. You can check this yourself in the browser's network panel: after the page has loaded there are no upload requests. Closing the tab discards the text.

Do I need an account or to pay?

No. These basic tools are free and add nothing to your data. The only limits are the tool's own: files up to 5,242,880 characters; times up to 999:59:59.999; cue text, styling tags and WebVTT settings are kept as written. Within them, the practical limit is your device's memory.

What does this page keep in my browser?

Nothing you open or type. While the tab is open, the tool pages keep a short list of the steps taken in it, in the tab's session storage: the step (page opened, started, succeeded, first success, used again or failed), the tool's name, the time, how many files were used and, for a failure, an error code; never a file name, the contents of a file or your text. It holds at most the latest 200 steps, and the browser deletes it when the tab closes. The page never sends it. Where a Report a problem button is shown, you can attach the last 20 steps to your report; nothing is attached unless you tick that box. In local storage the page keeps only choices you made: a Light or Dark theme until you choose System again, the language you picked with the EN / 中文 switch if it differs from your browser's language, and this tool in your recently used list if you switched that list on at the tools page.

Questions or problems

Found a problem or missing feature? Tell us. Please describe the steps; do not send confidential data.