About this tool
Convert SubRip (.srt) subtitles to WebVTT in the browser, with timing offset, alignment tag conversion and BOM/line-ending cleanup.
The SRT to VTT Converter rewrites a SubRip subtitle file as a W3C WebVTT file that the HTML5 <track> element will accept. It adds the mandatory WEBVTT header, changes the millisecond separator from a comma to a full stop, escapes stray ampersands and angle brackets in the cue text, drops legacy SubRip X1/Y1 coordinates, and can translate SubStation {\anN} alignment overrides into WebVTT line and align cue settings. Conversion happens entirely in your browser, so the subtitle file is never uploaded.
Open SRT To VTT Converter on AltFTool — it loads instantly in your browser.
Paste SubRip text into the "SubRip (.srt) input" box or click "Load .srt file" (accepts .srt and .txt).
Set the "Timing offset (milliseconds)" and tick the conversion options: keep cue numbers as identifiers, convert {\anN} alignment tags, remove <font> tags.
Click "Download .vtt" to save the converted file (your chosen name plus .vtt), or "Copy VTT" - parsing runs locally and nothing is uploaded.
Emits the WEBVTT header, full-stop timestamps and escaped cue text exactly as the W3C spec requires.
Parsing and conversion run in JavaScript on your device, so client footage stays private.
A millisecond offset is applied to every cue in one pass, with negative values clamped at zero.
The main difference is the timestamp separator and the header: SubRip writes 00:00:01,000 with a comma and has no header, while WebVTT writes 00:00:01.000 with a full stop and must begin with the line WEBVTT. WebVTT also supports cue settings for position and alignment, CSS styling through ::cue, and cue identifiers, none of which SubRip has.
Browsers only accept WebVTT in the <track> element — SubRip is not a supported track format in any major browser. Convert the file to .vtt, serve it with the text/vtt MIME type, and make sure it is on the same origin or sent with permissive CORS headers.
Bold, italic and underline tags carry across unchanged because WebVTT supports <b>, <i> and <u>. What is lost is <font color> styling and SubRip's X1/X2/Y1/Y2 coordinates, since WebVTT handles colour through CSS ::cue rules and position through line, position and align cue settings instead.
Enter the drift in milliseconds in the timing offset field — a positive number delays every cue, a negative number pulls it earlier. Measure the gap on one clearly spoken line first; if the drift grows over the runtime rather than staying constant, the frame rate is mismatched and a flat offset will not fix it.
Add the SRT To VTT Converter widget to your blog or website — free, responsive, no signup. Just keep the “Widget by AltFTool” credit link visible.
<iframe src="https://www.altftool.com/embed/widget/srt-to-vtt-converter"
title="SRT To VTT Converter — free AltFTool widget"
width="100%" height="640" style="border:0;border-radius:12px;overflow:hidden"
loading="lazy" referrerpolicy="no-referrer-when-downgrade" allow="clipboard-write"></iframe>
<p style="font-size:12px;margin:4px 0 0">Widget by <a href="https://www.altftool.com/tools/all/srt-to-vtt-converter?utm_source=embed&utm_medium=widget" rel="nofollow">AltFTool — free online tools</a></p>