Free tool

Shift a section of subtitles

Move a chosen range of subtitles and leave the rest exactly where it is — the fix for a file that starts in sync and slips partway through, like after an ad break or a missing scene.

Nothing stored afterward No account needed SRT, WebVTT & ASS/SSA

Leave a number blank for the start or the end of the file. Where ranges overlap, the one nearest the top wins.

Subtitles to shift by sec

Your file is processed and sent straight back — never saved on our servers.

Prefer not to upload your file?

The AI Subtitle Studio desktop app has this same Tools section built in — plus AI transcription, translation and batch processing for a whole season at once, all running locally on your Mac or PC.

Get the desktop app
How it works

Find the break, set the range

Find where it slips

Play the video and note the subtitle number where the drift starts — everything before it is fine, everything after is off by the same amount.

Set the range and offset

Enter the subtitle numbers to shift and by how much. Leave "last" blank to mean "to the end of the file."

Download the result

Get the file back with only that range re-timed — everything outside it is untouched, down to the byte.

More than one break

Multiple ranges, in order

Add another range adds a row. A file with three ad breaks needs three ranges, each with a bigger offset than the last, since the error accumulates over the length of the file.

Where two ranges overlap, the first one wins — a subtitle covered by more than one row takes the offset from the row nearest the top and ignores the rest, so ranges never stack. Order your rows from most specific to most general if you use overlapping ones on purpose. A row left at the default 0-second offset doesn't count for this — it's treated as not yet set, so an overlapping row below it still applies.

FAQ

Questions about shifting a section

How do I shift everything from a certain point onwards?
Put the subtitle number in the first box and leave the second blank. A blank end means the end of the file.
What happens if my ranges overlap?
The row nearest the top wins. A subtitle in two ranges is shifted once, by the first range that covers it — offsets never stack. The exception is a row still at the default 0-second offset: it's skipped as if it weren't there, so a real offset on a row below it still applies.
Can I use timecodes instead of subtitle numbers?
Ranges are given as subtitle numbers — count them from the top of your file, same as the sequence numbers in an SRT.
My file drifts continuously rather than jumping.
That's a framerate mismatch — splitting it into ranges won't fix it properly. The desktop app's Sync Subtitles feature re-times against the audio and corrects drift, not just offset.
Do you keep my file?
No. It's processed in memory for this one request and never written to disk on our end.