Applies to: Protocol and format interpretation for developers inspecting authorized media delivery.
The useful distinctions
- A WebVTT file begins with the WEBVTT signature.
- A blank line separates the header from cue data and separates cue blocks.
- Cue timing uses a start and end separated by -->.
Turn each block into a row
The fictional file contains two cues rather than four independent lines of dialogue. The first lasts from 1.250 to 3.000 seconds and the second from 3.250 to 5.000 seconds. A worksheet with start, end, duration, and text makes the quarter-second gap visible. The durations are each 1.75 seconds. This is a timing inventory, not a judgment that either duration is ideal for a particular reader or programme.
Protect structural whitespace during edits
A blank line ends a cue block, so inserting one into the middle of a payload is different from adding an ordinary line break within that cue. Likewise, removing every empty line as a cleanup step can join blocks and change how a parser understands the file. Store the file as UTF-8 and preserve the distinction between the timing line and payload lines when applying text replacements. If an export loses the signature or uses a comma as a decimal separator copied from another subtitle format, repair the serializer rather than teaching a downstream importer to guess. The sample contains only plain cue text, keeping block structure visible before styling and annotations are introduced.
Worked example · synthetic
Both cue durations are 1.750 seconds. Cue one ends at 3.000 and cue two begins at 3.250, leaving 0.250 seconds without either cue active.
Synthetic text example; no network operation has been performed.
WEBVTT
00:00:01.250 --> 00:00:03.000
Fold the blue sheet.
00:00:03.250 --> 00:00:05.000
Place it beside the red sheet.
Check the interpretation
- Check the WEBVTT signature and blank-line boundaries.
- Convert timestamps to a common unit before subtracting.
- Require each end to be later than its own start.