Format guide
SRT vs WebVTT validation
SRT and WebVTT both represent timed text, but their headers, index conventions, timestamp punctuation, identifiers, and cue settings require format-aware parsing.
Short answer: when to use SRT vs WebVTT
Use SRT when a simple, broadly supported subtitle file is required. Use WebVTT for HTML video and WebVTT-specific cue settings. Validate the actual delivery requirement because file extension alone does not prove platform acceptance.
SRT and WebVTT validation differences
| Area | SRT | WebVTT declared subset |
|---|---|---|
| File start | No required header | Begins with WEBVTT |
| Cue identifier | Numeric sequence expected by this parser | Optional cue identifier |
| Timestamp milliseconds | Comma: 00:00:01,000 | Dot: 00:00:01.000 |
| Hours form | HH:MM:SS,mmm expected | HH:MM:SS.mmm supported by this parser |
| Cue settings | Not part of baseline SRT syntax | Common line, position, size, align, and vertical settings supported |
| Comments or notes | No declared comment block support | NOTE blocks supported |
| Styling and regions | Not supported by this SRT parser | STYLE and REGION receive diagnostics in the declared subset |
| Common parser failure | Missing sequence, malformed block, comma/timing error | Missing header, malformed cue timing, unsupported setting |
| Shared post-parse checks | Overlap, gap, duration, CPS, WPM, line count, characters per line, empty text, adjacent duplicates | The same deterministic profile checks |
This table describes Subtitle Preflight's declared parsers. It is not a universal platform-support table and does not prove client acceptance.
Minimal valid SRT and WebVTT examples
SRT
1
00:00:01,000 --> 00:00:03,000
Synthetic SRT cue.WebVTT
WEBVTT
00:00:01.000 --> 00:00:03.000
Synthetic WebVTT cue.The visible differences are the required WEBVTT header, optional WebVTT cue identifier, and timestamp punctuation. SRT uses comma milliseconds; WebVTT uses dot milliseconds.
Common format-specific validation failures
| If the file contains… | SRT result | WebVTT result |
|---|---|---|
| Dot milliseconds | Invalid timestamp syntax | Expected punctuation |
| Comma milliseconds | Expected punctuation | Invalid cue timing |
No WEBVTT header | Not applicable | Invalid header diagnostic |
| A missing numeric sequence | Sequence finding | Identifier remains optional |
STYLE or REGION | Outside declared SRT syntax | Diagnostic under the declared subset |
| End time at or before start time | Timing-order finding | Timing-order finding after parsing |
WebVTT specification source
WebVTT syntax statements on this site are informed by the W3C Candidate Recommendation Draft, WebVTT: The Web Video Text Tracks Format, published 20 May 2026. Subtitle Preflight implements a declared subset and is not W3C-approved.
Read the W3C WebVTT Candidate Recommendation Draft dated 20 May 2026
Validate the format you need to deliver
Choose the format-specific checker for syntax guidance, or use the multi-format checker when you need the same cue-level profile and report workflow for SRT and WebVTT.
Open the multi-format subtitle checker
Frequently asked questions
Which is better, SRT or WebVTT?
Neither format is universally better. Use the format required by the delivery workflow: SRT for a simple subtitle file when requested, or WebVTT when HTML video or supported WebVTT cue settings are required.
Can a WebVTT file use SRT timestamps?
No. The declared WebVTT parser expects dot milliseconds. Comma-millisecond SRT timing is reported as invalid WebVTT cue timing.
Does Subtitle Preflight convert SRT and WebVTT?
No. Conversion and editing are outside the implemented workflow. The checker reports supported parser and rule findings without changing the supplied text.
Does a valid file extension prove platform acceptance?
No. Confirm the required format and settings with the applicable client, player, platform, or program.
Is the WebVTT checker a complete conformance checker?
No. It implements and documents a declared subset and is not W3C-approved.