Free · Unlimited · In your browser

SRT to VTT Converter

Convert between SRT, WebVTT and plain text in both directions. Timings are preserved to the millisecond, and the file never leaves your browser.

Unlimited — converts locally, nothing is uploaded

How It Works

How to use the srt to vtt converter

01

Drop in your subtitle file

An .srt or .vtt file, or paste the contents straight into the box.

02

Pick the output format

SRT, WebVTT, or plain text with the timecodes stripped out.

03

Copy or download

Take the converted file, or copy the result to your clipboard.

SRT vs VTT — what is the difference?

SRT (SubRip) is the older and more widely supported of the two. It is a numbered list of cues, each with a start and end timecode and a line or two of text. Almost every video player, editor and platform accepts it.

WebVTT (.vtt) is the format HTML5 video uses. It is close enough to SRT to look almost identical, with three differences that matter: it must start with the line 'WEBVTT', it separates timecode milliseconds with a dot instead of a comma, and it supports positioning and styling cues that SRT has no way to express.

That millisecond separator is why a renamed file does not work. Change hello.srt to hello.vtt and a browser will reject every cue, because '00:00:01,500' is not valid VTT — it needs '00:00:01.500'. Converting properly rewrites the timecodes and adds the header; renaming does neither.

Why Use This Tool

What the srt to vtt converter gives you

Both directions

SRT to VTT and VTT to SRT, plus plain-text extraction from either.

Timings preserved exactly

Millisecond precision is kept, and the separator is rewritten to whatever the target format requires.

Nothing is uploaded

The conversion happens in your browser. Your subtitle file never touches a server.

Instant and unlimited

No file count, no size cap, no account.

Plain-text export

Strip every timecode and cue number to get just the spoken words — useful for reading or repurposing.

Paste or upload

Works from a file or from text pasted straight into the box.

Format reference

SRT and VTT, side by side

The differences are small but not optional — each one breaks playback if it is wrong.

HeaderVTT must begin with the literal line 'WEBVTT'. SRT has no header at all.
MillisecondsSRT uses a comma (00:00:01,500). VTT uses a dot (00:00:01.500). This is the difference that breaks a renamed file.
Cue numbersSRT numbers every cue. In VTT the numbers are optional and usually dropped.
StylingVTT supports positioning, alignment and CSS-style cues. SRT supports none of it — some players honour basic HTML tags, but it is not part of the format.
SupportSRT is accepted almost everywhere. VTT is what HTML5 <track> elements require in a browser.

FAQ

Common questions

Still stuck? Email us.

Can I just rename a .srt file to .vtt?

No. VTT needs the 'WEBVTT' header line and dot-separated milliseconds. A renamed SRT has neither, so browsers reject every cue and no subtitles appear.

Which format should I use?

VTT for HTML5 video on your own website, because that is what the <track> element requires. SRT for everything else — editors, platform uploads, and players generally.

Does converting lose the timing?

No. Timings are read to the millisecond and written out in the target format's notation. Nothing is rounded.

Is my subtitle file uploaded anywhere?

No. The conversion runs entirely in your browser using JavaScript. Nothing is sent to a server.

Can I convert to plain text?

Yes. The plain-text option strips cue numbers and timecodes and returns just the spoken lines.

Does YouTube accept SRT or VTT?

Both. YouTube accepts SRT, VTT, SBV and several others when you upload a subtitle track.

Caption plumbing solved. The hard part is captions that are right.

Converting between formats is a one-click problem. Producing accurate, well-timed captions for every clip you publish is not. ShortsHero generates them word by word from the source audio and styles them inside each platform's safe zone.

See automatic captions

Free to start · No credit card required