Creator tool / 01

SRT to VTT Converter

Convert SubRip subtitles into WebVTT for HTML5 video, in your browser.

SRT to VTT Converter: TOEA reads each cue's timing and text, then writes them back with the WEBVTT header and the full-stop separator the format requires instead of SubRip's comma. Runs 100% locally in your browser with zero server file uploads.

Runs
In your browser
Cost
Free · no sign-up
Availability
Ready to use
SRT → WebVTT deskLocal processing

Runs entirely in your browser

↥
Choose a subtitle file

SRT or VTT · up to 5 MB, or paste below

Using the VTT on a web page

Add the file inside the <video> element: <track kind="subtitles" src="talk.vtt" srclang="en" label="English">, and add default to show it without the viewer switching it on. The server should send the file as text/vtt. If the VTT is on a different domain from the page, the server must allow cross-origin requests and the <video> needs a crossorigin attribute, or the browser ignores the track.

Tags that do not carry over

WebVTT understands <i>, <b>, and <u>, but not SubRip's <font color> tags or positioning codes in braces such as {\an8}. Those are copied into the VTT as they are, and a browser may display them as literal text. If the SRT contains them, remove them first with the subtitle cleaner, which strips all markup. Sequence numbers are dropped because WebVTT cues need no identifier, and every browser accepts the file without them.

How to use it

  1. Choose an .srt file or paste its text.
  2. Check the cue count and duration.
  3. Copy or download the .vtt file.

Privacy & limitations

The file is read and rewritten in your browser and never uploaded. Sequence numbers are dropped because WebVTT does not need them.

Related tools

Frequently asked questions

Why does HTML5 video need VTT?

The <track> element only accepts WebVTT. SubRip files are rejected even though the two formats are nearly identical.

What actually changes?

A WEBVTT header is added, the comma before the milliseconds becomes a full stop, and sequence numbers are dropped. The timings and text are untouched.

Will my formatting survive?

Italic and bold tags carry across, since both formats allow them. SubRip positioning codes in braces do not have a WebVTT equivalent.

My file came out empty.

Check the counter above the result. Blocks with unreadable timings are skipped and counted, which usually means the arrow or timestamp is malformed.

Free tool · runs in your browser · no account required