Shift a Section

Shift a Section moves a chosen range of subtitles and leaves the rest where they are. It is the fix for a file that starts in sync and slips partway through: a broadcast rip with ad breaks the subtitles do not account for, or a release with a scene your copy is missing.

Defining a range

A range is a span of subtitle numbers — the same numbers shown in the # column of the preview below — and an offset in seconds, read exactly as it is in Shift Timing: positive moves later, negative moves earlier.

Either end may be left blank. A blank first means the start of the file; a blank last means the end of it. "Subtitles 340 to blank, shift by 12" is therefore "everything from 340 onwards, twelve seconds later", which is the shape most of these repairs take.

As you type, the range shows the stretch of the film it covers — 00:41:18.500 → 01:22:04.000 — so you can confirm you have the right part of the file without counting rows.

Finding the subtitle number to start from

Play the video and find the first line that is out of sync. Read its number off the preview table, then measure the error there the same way you would for a whole-file shift: the time it should appear minus the time it does.

The break is usually obvious once you know roughly where to look — everything before it lands correctly and everything after is out by the same amount.

More than one range

Add another range adds a row, and × removes one. A file with three ad breaks needs three ranges, each with a bigger offset than the last, since the error accumulates.

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 others — so ranges do not stack, and an overlap you did not intend cannot silently double a shift. Order your rows from most specific to most general if you use overlapping ones deliberately.

Checking before you save

The preview highlights only the rows that move, so it is worth scrolling to the boundary and confirming the change starts exactly where you meant. The count above the table — 412 subtitles of 980 change — is the other quick check: if it says every subtitle changes, your range is wider than you thought, and if it says none do, the offset is still zero.

As everywhere in the section, times are clamped at zero and nothing but the timestamps is rewritten.

FAQ

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.
Can I use timecodes instead of subtitle numbers?
Ranges are given as subtitle numbers, but each row shows the time span it covers as you type, so you can line it up against the video without converting anything by hand.
My file drifts continuously rather than jumping.
That is a framerate mismatch. Splitting it into ranges will not fix it properly — use Sync Subtitles in the editor instead.
Do I need a licence?
No. Shift a Section is free and works without activation.