SRT Time Shift

Subtitles showing too early or too late? Shift the whole file by any offset — right in your browser.
No installs, no upload, 100% free.

Drop your subtitle file here
.srt or .vtt — parsed right in your browser
Files never leave your device

No subtitle file yet? Generate one from any audio or video.

Fix subtitle sync in three steps

A free subtitle time shifter that runs entirely in your browser. Drop an SRT, set the offset, download the fixed file.

  1. Step 1

    Upload your subtitle file

    Drag an .srt or .vtt file into the upload area, or click to browse. The file is parsed on your device — it never gets uploaded, so an unreleased cut or an embargoed interview stays where it is.

  2. Step 2

    Set the offset

    Type the shift in milliseconds or step it with the +/− buttons, which move in 100 ms at a time. Negative values make subtitles appear earlier, positive later, and the preview under the controls re-times the first cues as you go.

  3. Step 3

    Download the fixed file

    You get the same file with every cue moved by your offset, in the format you started with, and the offset is written into the file name — episode-04-shifted+1200ms.srt — so two attempts never overwrite each other.

When you need a time shift

One constant offset fixes almost every out-of-sync subtitle problem.

Different video cut

Your copy has a distributor logo, a recap or an ad break the subtitle author's copy did not — that difference is one number, applied once to every cue.

Early or late subtitles

Lines that land a second ahead of the voices, and stay a second ahead all the way through, are a fixed offset — the case this tool exists for.

Player differences

Some players count time from the first video frame and some from the container's start offset, which is a few hundred milliseconds of disagreement on the same file.

Downloaded subtitles

A subtitle file from the web rarely matches your exact release. Shifting it into place takes seconds and beats hunting for a file that happens to match.

Fine tuning

Step in 100 ms until the text lands on the speech rather than just near it; the re-timed preview means you check without downloading each attempt.

Need subtitles from scratch?

If you have no subtitle file at all, SlayScribe transcribes the video itself and exports SRT or VTT that is in sync by construction.

Why in the browser

A subtitle file is just text — there is no reason to upload it to a server. This tool parses the file on your device, moves every timestamp by your offset, and writes the result back out. Private, instant, and it works offline once the page is loaded.

Getting the offset right

How to find the number, what the file looks like afterwards, and the one problem a shift cannot solve.

Finding the number instead of guessing it

Play the video, wait for a line you can hear clearly, and note two times: when the subtitle appears and when the words are actually spoken. Subtract one from the other and that difference, in milliseconds, is your offset — negative if the text is late, positive if it is early. One measurement is enough for the whole file, because a constant offset is constant; if a second check later in the video gives you a different number, you do not have an offset problem (see below).

What comes out the other side

The file keeps the format it arrived in: an SRT stays SubRip with comma milliseconds and cues renumbered from 1, a VTT stays WebVTT with its header and no cue numbers. Every start and end moves by exactly your offset, to the millisecond, and nothing else about the text is touched. The download is named after the original with the offset appended, so shifting the same file by −800 and then by −1200 leaves you two files you can tell apart.

Cues near zero are pinned, not pushed negative

Subtitle formats have no negative timestamps, so a negative shift larger than a cue's own start time cannot be applied honestly. Instead of writing an impossible time, the tool pins that cue to 00:00:00,000. In practice this means a −3 s shift on a file whose first line starts at 1.2 s leaves that line on screen from the very first frame, while everything after it moves normally. If the opening lines matter, shift by less and check the beginning of the video, not just the middle.

A constant shift cannot fix drift

If subtitles are close at the start and further off with every minute, the file was timed against a different frame rate — 23.976 fps text played against a 25 fps encode, or the reverse. The two run about 4% apart, which is roughly two and a half minutes of divergence over an hour of video, and no single offset can absorb a gap that keeps growing. The test takes a minute: check sync five minutes in and then fifty minutes in. Same error both times means shift it; a bigger error the second time means the timing needs rebuilding, which is what transcribing your own copy of the video does.

Styling in a VTT does not survive the round trip

The shifted file is written by the same writer the subtitle converter uses, so a WebVTT file comes back as plain cues: positioning and alignment settings after the timestamp, cue identifier lines, and STYLE, REGION or NOTE blocks are dropped, while inline italic and bold inside the text are kept. For ordinary subtitles that is invisible. For a file that relies on placing text away from a burned-in caption, keep the original and shift a copy.

The time shifter at a glance

Reads
SubRip (.srt) and WebVTT (.vtt), detected from the file's content rather than its extension
Writes
The same format it read — a shifted SRT stays SRT, a shifted VTT stays VTT
Step
±100 ms on the buttons; any whole number of milliseconds can be typed in
Preview
The first cues are re-timed live, so the offset is checked before anything is downloaded
Precision
Every cue start and end moves by exactly the offset, to the millisecond
Floor
00:00:00,000 — a cue that would go negative is pinned there instead
File name
Original name plus the offset, e.g. episode-04-shifted-800ms.srt
Not the fix for
Drift that grows through the file — that is a frame-rate mismatch, not an offset
Runs
In the browser tab — no upload, no account, no limit on how many files

Frequently asked questions

Does shifting subtitle timing cost anything?

Re-timing subtitles on SlayScribe is free and needs no account, because the work happens in your browser rather than on a server — there is no per-file cost to pass on and no limit on how many files you fix.

Which subtitle formats are supported?

SubRip (.srt) and WebVTT (.vtt). The shifted file is written back in the format it arrived in, so a player that accepted the original will accept the result.

How do I know which direction to shift?

If the subtitle appears before the words are spoken, shift positive to move it later; if it lags behind the voices, shift negative to move it earlier. The size is the gap you measured in milliseconds — a line landing 1.2 seconds early needs +1200.

How do I find the exact offset?

Pick a line you can hear clearly, note the time the subtitle appears and the time the words are said, and subtract. That single difference applies to the whole file, and the ±100 ms buttons are there to nudge it once you are close.

What if the drift gets worse over time?

A gap that grows through the video is a frame-rate mismatch — 23.976 fps timings against a 25 fps encode drift about 4%, roughly two and a half minutes across an hour — and no constant offset can fix it. Re-generating subtitles from your own copy of the video does.

What happens to subtitles at the very start of the file?

A negative shift larger than a cue's start time would produce a negative timestamp, which SRT and VTT cannot express, so that cue is pinned to 00:00:00,000 while the rest of the file moves normally.

Does the shifted file keep its styling?

Inline italic and bold survive, but WebVTT positioning settings, cue identifiers and STYLE, REGION or NOTE blocks are dropped, because the file is rewritten as plain cues. Keep the original if your subtitles depend on placement.

Does my subtitle file leave the browser?

Parsing, shifting and saving all happen on your own device; nothing is sent anywhere, which is why the tool keeps working after the page is loaded even with the network off.

Will the file name tell me what I did?

The download is the original name with the offset appended — episode-04-shifted+1200ms.srt — so several attempts at the same file sit side by side instead of overwriting one another.

Can I create subtitles from a video here?

Not on this page, but SlayScribe transcribes any audio or video into SRT or VTT subtitles in 99 languages, and subtitles made from the video itself need no shifting at all.

More subtitle tools

Subtitle ConverterSubtitle GeneratorYouTube Captions & SubtitlesTranscribe Video to Text

Need the words, not just the audio?

SlayScribe turns any audio or video into accurate text in seconds — transcripts, captions, and subtitles in 99 languages.