Cueslide

Method and supported syntax

One offset, with no hidden cue edits.

Cueslide adds one signed integer millisecond value to both endpoints of every supported cue. It changes no cue durations, signed gaps, ordering or wording.

Choose the sign

A positive offset moves subtitles later. A negative offset moves them earlier. Enter milliseconds, so 750 means three quarters of a second later and −1,250 means 1.250 seconds earlier. The field accepts the plain integer -1250, without a comma or unit. This tool does not discover the right delay by listening to media.

Exact bounded arithmetic

A timestamp becomes an integer using t = ((hours × 60 + minutes) × 60 + seconds) × 1000 + milliseconds. Add the offset to the start and end, then format each as fixed-width comma-millisecond text. The supported maximum is 99:59:59,999, or 359,999,999 ms. This two-digit-hour limit is a product choice, not a claim that every SRT reader has the same limit.

The bounded integer additions are exact. For each cue, (end + offset) − (start + offset) = end − start. The signed gap from one entered cue's end to the next entered cue's start is also unchanged. A negative gap represents an overlap; Cueslide neither removes it nor assesses its quality. Cues can be out of time order, and zero-duration cues are accepted. The original entered order stays intact.

A strict supported subset

Each cue has a counter on its own line, a timing line, and one or more text lines. Exactly empty lines separate cue blocks.

1
00:00:01,250 --> 00:00:03,000
Hello <i>world</i>.

2
00:00:03,500 --> 00:00:05,125
A later cue.

Size, text and offset bounds

The full input can contain at most 1,000,000 UTF-16 code units and 1–5,000 cues. Each cue can have 1–20 nonempty text lines, with at most 4,000 UTF-16 code units per line. An emoji commonly uses two code units. NUL and unpaired Unicode surrogate characters are rejected so a UTF-8 export does not silently replace malformed text.

The offset has at most 16 characters including optional ASCII outer spaces. It accepts an optional + or - sign and decimal integer digits, including leading zeroes. Its absolute value may not exceed 359,999,999. Blank values, fractional milliseconds, decimals, exponent notation, units, commas, tabs and other padding are rejected.

Unsupported variants include WEBVTT and ASS, missing or nonsequential counters, a counter on the timing line, single-digit hours, dot milliseconds, variable precision, cue-position suffixes and hours beyond 99. A rejected file may still work in some other editor; this tool does not claim universal SRT validation.

All-or-nothing bounds

After validating the complete input, Cueslide finds the earliest start and latest end. The whole-file offset interval is −earliestStart through 359999999 − latestEnd. If your requested shift falls outside that interval, the error identifies an offending cue endpoint and no current output or exports remain. Nothing is clipped, shortened, deleted or reordered.

Preserve text by editing structural spans

The parser identifies the timing line of each cue block. Only the two timestamp digit fields are rewritten. Counters, spaces, text, line endings, separator count and the optional leading BOM stay as supplied. An offset of zero returns a character-identical string. The code does not globally replace every timestamp-looking line, because one can legitimately appear inside cue text.

A browser's paste or text-area handling can normalize line endings before the calculation receives the text. A UTF-8 download is made from that Unicode string; it cannot restore an original file's unknown byte encoding. Preview line wrapping and rendered whitespace are not an encoding audit. Review the downloaded result in your intended player or editor.

Exports and privacy

Copy shifted SRT and Save SRT include the complete shifted text, regardless of the timing table's current page. The download keeps an entered leading BOM character and adds none otherwise. Save timing JSON contains every cue's before/after times, unchanged duration and signed gap, with model notes. Editing clears the current result, table, paging and fallback. A clipboard request already sent cannot be recalled; late responses cannot restore stale notes or mark them current.

Primary format context

The Library of Congress SRT description documents numbered timing/text blocks, informal format documentation and variable encoding or reader support. The Subtitld project's format notes describe conventional syntax and a more tolerant editor. Those sources provide context for the explicit subset above, not endorsement or a universal parser guarantee.

This tool does not transcribe, translate, judge reading speed or accessibility quality, fix drift, change frame rate, align to a waveform or play video/audio.

Shift a subtitle text