Paste or open an .srt or .vtt file, shift every cue by a positive or negative number of milliseconds, optionally stretch for drift, and get a report of malformed timestamps, end-before-start cues, overlaps and cues pushed before zero. Download the corrected file in the same format; processed in the page, not uploaded.
FILE
Nothing loaded yet.
CHECKS
No timing problems found. That says nothing about whether the words match the voice.
CUES · ORIGINAL → RETIMED
#
Start
End
Text
Flags
What it does
It reads an SRT or WebVTT file, shows every cue, moves all of them by an offset (and optionally stretches them for drift), reports timing problems, and writes the corrected file back in the same format. It is text processing: it never hears the audio, so valid timing does not mean a caption matches the voice. Check the result against the video.
01Load
Open a local .srt or .vtt file, paste the text, or load the written sample. The format is detected from the text: a WEBVTT first line means WebVTT, anything else with a “start --> end” line is read as SRT.
02Retime
Type the offset in milliseconds (negative moves cues earlier) and, if the captions drift, a stretch factor. The table shows each cue’s original and new times as you type.
03Check
Malformed timestamps, cues that end before they start, zero-length cues, overlaps, cues out of order and cues pushed before zero are listed with their line numbers and marked in the table.
04Export
Download the corrected file (same format, same text, canonical timestamps) or copy it. Export waits while any cue would start before 00:00:00.000; tick “clamp to zero” or use a smaller offset.
Offset and stretch
Offset adds the same number of milliseconds to every start and end. Captions that appear 1.5 s too early need +1500; captions that appear 1.5 s too late need −1500. Both numbers of a cue move together, so its length never changes.
Stretch is for drift, where the error grows over the file: the captions are right at the start and late (or early) at the end, typically because the video and the captions were made at slightly different frame rates. Every time is multiplied by the factor before the offset is added: new = old × factor + offset. To find the factor, take a point late in the file where you know the true time: captions that read 20:00 (1,200 s) when the video is at 19:58 (1,198 s) need a factor of 1198 ÷ 1200 = 0.99833. A factor of 1.001 makes cues 1 ms later for every second of file. Values must be between 0.5 and 2; 1 means no stretch.
Before zero. A negative offset can push the first cues before 00:00:00.000. Neither format can express a negative time, so the page reports those cues and holds the export. With “clamp to zero” ticked, a cue that straddles zero starts at 00:00:00.000 and a cue that would end at or before zero is removed; both are listed in the checks.
What the checks mean
Flag
Severity
Meaning
malformed timestamp
error
A timing line whose start or end is not HH:MM:SS,mmm (SRT) or HH:MM:SS.mmm (WebVTT, hours optional). The block is kept exactly as it is and is not retimed.
unrecognised block
error
A block with no timing line (and, in WebVTT, not a NOTE, STYLE or REGION block). Kept as it is.
bad index
error
An SRT block whose first line is not a number. Kept as it is.
end before start
error
The cue’s end time is earlier than its start; players ignore or mis-handle it.
negative time / before zero
error
The cue would start before 00:00:00.000 after the offset; export waits until it is clamped or the offset changes.
overlap
warning
The cue starts before the previous cue (by start time) has ended; the message says by how many milliseconds. Some players show both, some drop one.
zero length
warning
Start and end are equal; the cue is never visible.
out of order
warning
The cue starts earlier than the cue before it in the file.
clamped / removed
warning
What the “clamp to zero” option did to a cue pushed before zero.
SRT and WebVTT details
Kept exactly. Every character of cue text, including Unicode, punctuation, line breaks, HTML-like tags and WebVTT <c> spans; WebVTT header lines after WEBVTT (for instance Kind: captions); NOTE, STYLE and REGION blocks; cue identifiers; cue settings after the end time (such as align:start position:0%); SRT indices unless you tick renumber; the file’s line endings (CRLF or LF). Cue text is rendered on this page as text, never as HTML.
Changed. Only the timestamps. They are written in the canonical form with hours always present (00:01:02,500 or 00:01:02.500), so a WebVTT file written as 01:02.500 comes back as 00:01:02.500. Inline WebVTT timestamps inside cue text (<00:00:04.160>, used for word-by-word timing) are retimed together with their cue. Runs of blank lines between blocks collapse to one; a byte-order mark at the start is dropped.
Blank lines. In WebVTT only an empty line ends a block, so a line containing one space is part of the cue, as in YouTube’s caption files. In SRT, which has no formal specification, a whitespace-only line counts as blank.
Reference. The WebVTT rules follow the W3C specification “WebVTT: The Web Video Text Tracks Format”. A file without a WEBVTT first line is treated as SRT and written with comma decimals.
How the site’s own clips were timed
The captions on the site’s vertical promo clips were not typed from memory and nobody listened to the audio to transcribe them. Each line’s words were read from the Broker’s overlay bubble in the recording frames, and its start and end were taken from YouTube’s audio-derived captions of the same public upload; the overlay is the text source and the audio-derived captions are the clock. The result is a caption list with absolute times in the recording, in the same shape this page exports, which the clip renderer burns into the vertical video. This tool does the timing half of that job for your own files; the words remain yours to verify.
Limits
Text processing only: it cannot hear the audio, so valid timing does not mean a caption matches the voice. Check the result against the video.
Timestamps are rewritten in the canonical form (hours always present) and runs of blank lines collapse to one; everything else, including malformed blocks, is kept exactly and reported.
Large files are parsed in the page on every change; files over 20 MB are refused, and the table shows the first 400 cues (the export contains all of them).
Founder Alpha is early-access software; the commentary can be wrong, repeated or badly timed, and it is sold to customers in the United States only.
Founder Alpha is available to customers in the United States. Founder Alpha is early-access software. Signal Broker is an AI system. The Broker's words and voice are generated using AI. No person is speaking or writing what he says.