No Login Data Private Local Save

WebVTT Subtitle Validator - Online Check Syntax

6
0
0
0
WebVTT Validator

Drop your .vtt file here

or paste WebVTT content below

1
Validation Report
Pending
Lines: - Cues: - Errors: - Warnings: -

Click Validate Now to check your WebVTT content

WebVTT Knowledge & FAQ

WebVTT (Web Video Text Tracks) is a W3C standard format for displaying timed text tracks — such as subtitles, captions, chapter markers, and metadata — with HTML5 video elements. It's the successor to SRT and is natively supported by all modern browsers via the <track> element. WebVTT files have the .vtt extension and must be served with the MIME type text/vtt.

A valid WebVTT file must: (1) Start with the string WEBVTT (optionally preceded by a UTF-8 BOM). (2) Have an empty line after the header. (3) Each cue consists of an optional ID, a timestamp line (HH:MM:SS.mmm --> HH:MM:SS.mmm), and cue text. (4) Cues must be separated by blank lines. The timestamp format supports both MM:SS.mmm and HH:MM:SS.mmm, where hours can have two or more digits for long videos.

This tool checks for: missing WEBVTT header, malformed timestamps, end times earlier than or equal to start times, overlapping cues, missing blank lines between cues, invalid millisecond format (must be exactly 3 digits), non-sequential cue timing, unclosed HTML-style tags within cue text, and BOM encoding issues. Warnings are raised for empty cue text, unusually long cues, and timestamp format inconsistencies.

SRT (SubRip) is an older, simpler format. Key differences: WebVTT requires the WEBVTT header; SRT uses commas for milliseconds (00:00:01,000) while WebVTT uses periods (00:00:01.000); WebVTT supports CSS styling, region positioning, ruby annotations, and voice tags; SRT supports basic bold/italic/underline HTML tags. WebVTT is the recommended standard for HTML5 video.

Timestamp overlaps occur when one cue's end time is later than the next cue's start time. To fix: ensure each cue's end time is less than or equal to the next cue's start time. For seamless display, set the end time to match the next start time exactly. Example: Cue 1 ends at 00:00:05.000, Cue 2 starts at 00:00:05.000. This validator flags overlaps as warnings so you can adjust timing accordingly.

Yes! WebVTT supports inline CSS through STYLE blocks placed after the header and before the first cue. You can also use inline tags like <b>, <i>, <u>, <c.classname> (for custom CSS classes), <v Speaker> (voice tags), and <ruby> for phonetic annotations. The ::cue CSS pseudo-element can style cues globally from the parent HTML page.