How to shift subtitle timestamps
Use the controls to move every cue by the same amount or let the tool vary the adjustment across the timeline. The Before & after preview puts original timing beside shifted timing, cue text, and any negative-time or overlap flags. A valid result can be downloaded as SRT or WebVTT.
What the subtitle controls do
- Choose Fixed offset when every cue needs the same time change. Choose Linear drift correction when the adjustment changes along the timeline.
- For a fixed shift, enter seconds or a time value in Offset to apply to every cue. The field accepts values such as
2.5,-1.5, and00:00:02.500. - For drift correction, enter values in Offset at the first cue and Offset at the last cue's end. Each cue gets an adjustment based on its original start and end positions.
- Enter text in Paste subtitle content below, or drop/upload a file:, or use Drop a subtitle file here and browse files. The file picker lists
.srt,.vtt, and.txt. - Review Before & after preview. The page recalculates when subtitle text or a correction value changes.
- Click Download after a valid result. Click Clear to remove the input and result.
Fixed offset or linear drift correction
A fixed offset adds the same amount to every cue's start and end time. Positive values delay subtitles. Negative values move them earlier. Adding 2.5 seconds changes this cue:
Input:
00:00:05,000 --> 00:00:07,000
Hello.
Output after +2.5 seconds:
00:00:07,500 --> 00:00:09,500
Linear drift correction uses the last cue's end time as the reference point. With a start offset of 0, an end offset of 2, and a last cue ending at 10 seconds, a cue starting at 5 seconds receives a 1-second start adjustment. Its end uses the adjustment calculated from its own position.
00:00:05,000 --> 00:00:06,000
Hello.
becomes
00:00:06,000 --> 00:00:07,200
What SRT and WebVTT shifting preserves
The output keeps cue order and cue text. WebVTT output keeps its header, cue identifiers, and cue settings for parsed cues. SRT output writes sequential cue numbers. WebVTT NOTE, STYLE, and REGION blocks are skipped while parsing and omitted from the download.
SRT timestamps must use HH:MM:SS,mmm. WebVTT timestamps use HH:MM:SS.mmm; hours can be omitted when parsing, and the first line must begin with WEBVTT. If a selected file exceeds 300000 characters, the text area shows a truncated preview and the page processes the full content.
What the preview flags
- A negative flag appears when a shifted cue start or end is below zero.
- An overlap flag appears when a shifted cue crosses the previous or next cue.
- The preview table shows each cue's original timing, shifted timing, flags, and text before you download the result.
Related subtitle editing tools
Subtitle Edit Tools covers direct changes to subtitle files in the browser. Choose Subtitle FPS Converter when timing needs a source-to-target frame-rate conversion. Choose Subtitle Style Editor when you need to change font, color, outline, alignment, margins, or positioning.
Frequently asked questions
How do I shift SRT subtitle timestamps by 2 seconds?
Choose Fixed offset, enter 2 in Offset to apply to every cue, then review Before & after preview. Each cue's start and end move two seconds later.
How does linear drift correction change subtitle timing?
Linear drift correction calculates a separate offset for each cue's start and end between Offset at the first cue and Offset at the last cue's end. The reference point is the end of the last parsed cue.
Why does my WebVTT file fail to parse?
A WebVTT file must start with WEBVTT on its first line and use timestamps such as 00:01.000 or 00:00:01.000. Malformed timing lines, reversed cue times, missing text, or missing timing lines produce an error with a line number.
Does Subtitle Timestamp Shifter upload subtitle files?
The page reads selected files with FileReader, processes subtitle text in the browser, and creates the download locally with a Blob. The page code makes no request containing the subtitle content.