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
An .srt or .vtt file, or paste the contents straight into the box.
SRT, WebVTT, or plain text with the timecodes stripped out.
Take the converted file, or copy the result to your clipboard.
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
SRT to VTT and VTT to SRT, plus plain-text extraction from either.
Millisecond precision is kept, and the separator is rewritten to whatever the target format requires.
The conversion happens in your browser. Your subtitle file never touches a server.
No file count, no size cap, no account.
Strip every timecode and cue number to get just the spoken words — useful for reading or repurposing.
Works from a file or from text pasted straight into the box.
Format reference
The differences are small but not optional — each one breaks playback if it is wrong.
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.
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.
No. Timings are read to the millisecond and written out in the target format's notation. Nothing is rounded.
No. The conversion runs entirely in your browser using JavaScript. Nothing is sent to a server.
Yes. The plain-text option strips cue numbers and timecodes and returns just the spoken lines.
Both. YouTube accepts SRT, VTT, SBV and several others when you upload a subtitle track.
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 captionsFree to start · No credit card required
Keep Going
Edit SRT subtitle files in your browser. Fix wrong words, shift every timecode to resync drifted captions, stretch timing for frame-rate changes, and re-download.
Translate SRT and VTT subtitle files into 90+ languages with every timecode preserved. Upload, pick a language, download a ready-to-use subtitle file.
Generate subtitles automatically from any video. Get burned-in captions or a downloadable SRT file with accurate word-level timing — free, no signup required.
Convert video to text free. Upload an MP4 and get an accurate, timestamped transcript with speaker labels where detectable. Download as TXT or SRT.
Converting rewrites the millisecond separator (comma for SRT, dot for VTT) and adds or removes the WEBVTT header. That is why renaming a file does not work — the timecodes themselves have to change.