Subtitle Time-Shift

Shift every timestamp in an SRT or VTT subtitle file by N seconds.

Open tool

Overview

The subtitle time-shift tool adds or subtracts a fixed offset from every timestamp in an SRT or VTT subtitle file. Cues that arrived 3.5 seconds late after a re-encode? Apply -3.5 and the entire track is back in sync.

Video editors fixing post-encoding drift, fan-subbers aligning to a different release, and accessibility staff matching captions to a re-cut master reach for this when subtitles and audio have separated by a constant amount. Long-tail searches that lead here include "shift subtitle timing online", "delay subtitles by seconds", and "fix offset between video and subtitles".

How it works

Both SRT and WebVTT store timings on a dedicated line per cue, in the form HH:MM:SS,mmm --> HH:MM:SS,mmm for SRT (comma decimal separator) and HH:MM:SS.mmm --> HH:MM:SS.mmm for VTT (period). The shift tool parses each timing line, converts the start and end into milliseconds, adds the supplied offset (positive or negative), and re-emits the line in the original format.

All other lines — cue indices, cue text, inline formatting tags, and the file header — are passed through untouched. Negative shifts that would push a cue's start before zero clamp at zero and shorten the cue accordingly; positive shifts that exceed the file's total duration are still emitted, leaving the player to handle out-of-range cues.

Examples

  • Shift every cue forward by 2.5 seconds when an opening credits sequence was trimmed.
  • Push subtitles back by 1.25 seconds to match an audio remaster.
  • Apply a small fractional shift to align lip-sync that drifted during a frame-rate conversion.
  • Correct a global offset introduced by exporting captions from a different timeline reference.

FAQ

Does it work on both SRT and VTT files?
Yes. The format is auto-detected from the file header, and the output preserves whichever format was provided — comma or period decimal separator and all.

Can I shift by a non-uniform amount, like progressively more over time?
This tool applies a single fixed offset to every cue. Progressive drift (where subtitles fall further behind as the video plays) is usually a frame-rate mismatch and needs a separate frame-rate stretch operation, not a time shift.

What happens to overlapping cues?
If two cues overlap in the source, they will still overlap in the output by the same amount. Shifts do not deduplicate or reorder cues.

Is the cue index updated when cues are reordered?
A pure time shift does not reorder cues, so indices remain stable. If a negative shift pushes a cue's start before zero, the cue is clamped rather than removed.

Does it handle the rare HH:MM:SS,mmm with hours larger than 99?
Yes — the parser accepts arbitrary hour values and re-emits them with the necessary number of digits.

Try Subtitle Time-Shift

An unhandled error has occurred. Reload ×