Seamlessly convert subtitles between SubRip (SRT) and WebVTT (VTT) formats. Preserve timestamps, text formatting, and cue ordering.
SRT (SubRip Text) is the most widely used subtitle format, supported by virtually all media players, video editors, and streaming platforms. WebVTT (Web Video Text Tracks) is the modern HTML5 standard designed for web-based video, offering advanced features like styling, positioning, and metadata. Converting between them ensures compatibility: SRT for offline players and legacy software, VTT for web delivery, accessibility compliance, and modern HTML5 video players.
00:00:01,000), VTT uses dot (00:00:01.000).
WEBVTT as first line; SRT has no mandatory header.
<c>, <v>, <ruby>), SRT only basic formatting.
<track> elements and major platforms like YouTube, Vimeo, and Netflix web player.
.srt/.vtt file.
SRT snippet:
1 00:00:02,500 --> 00:00:05,000 Welcome to the guide
becomes VTT:
WEBVTT 1 00:00:02.500 --> 00:00:05.000 Welcome to the guide
Note the header addition and comma → dot conversion. The converter preserves all text lines and cue ordering.
Our conversion engine uses a robust cue-parsing algorithm that respects multiline text, escaped characters, and common edge cases (Windows/Linux line breaks, extra blank lines, optional cue identifiers). For SRT to VTT, it adds the mandatory WEBVTT header, converts timecode commas to periods, and ensures that every cue block retains its text formatting. For VTT to SRT, it strips the header and any optional VTT metadata blocks (like STYLE or REGION), then converts timecode periods back to commas. The tool also handles cues without numbers, reindexes automatically, and preserves blank lines between cues for readability.
All operations are performed client-side with strict validation. If the input format is malformed, the tool provides clear error messages, suggesting corrections. The statistical module calculates total cues and the duration of the last timestamp minus the first start time to give you an approximate timeline length.
SRT (SubRip) specification notes: Each cue consists of a numeric identifier (optional), a timecode line with comma as decimal separator, and one or more lines of text. The standard allows for UTF-8 encoding with or without BOM. Timecodes are expected to be in HH:MM:SS,mmm format. Our parser correctly interprets both comma and dot separators during conversion, ensuring compatibility with various subtitle authoring tools.
WebVTT (W3C) details: The specification requires the file to start with WEBVTT (optionally followed by a space and a file description). Cue timestamps use a dot as the decimal separator. WebVTT supports cue settings (e.g., align:middle line:0%) and metadata blocks (STYLE, REGION, NOTE). This converter strips style and region blocks to produce clean SRT output, as SRT has no equivalent. When converting to VTT, only the essential header and cues are generated—cue settings are not preserved from SRT (since SRT has no such settings). This maintains compatibility with most players while keeping output clean.
::cue selectors, region definitions, and CSS styles are not preserved during conversion to SRT. The tool extracts only the plain text and timestamps. For VTT → SRT, style and region blocks are safely ignored.
Running into problems with conversion? Most issues stem from minor formatting deviations. Use this checklist to diagnose and fix your subtitle files.
UTF-8 (this solves 99% of issues).
HH:MM:SS,mmm --> HH:MM:SS,mmm (SRT) or HH:MM:SS.mmm --> HH:MM:SS.mmm (VTT).
WEBVTT header line.
Likely Causes & Fixes:
UTF-8 or UTF-8-BOM. Save the file and try again.
00:01:23,456 --> 00:01:25,789 00:01:23.456 --> 00:01:25.789 -->).
WEBVTT and style blocks, but no actual cue lines. <track> tag must reference the file correctly: <track kind="subtitles" src="subtitles.vtt" srclang="en" label="English">.
myvideo.mp4 and myvideo.srt).
.srt or .vtt). Some browsers may save it as .txt.
This converter does not modify timing. It only changes the format. If sync is off, the issue existed in the original file.
This is exclusively a character encoding issue.
UTF-8 or UTF-8 with BOM.
Note: Simple editors like Windows Notepad may not handle encoding well. We highly recommend using Notepad++ for subtitle work.
This is expected behavior and a known limitation.
If your issue persists, try this: