SRT to VTT Converter
Drop an SRT, get a WebVTT file ready for HTML5 <track>, YouTube captions, or any web video player.
Drop your SRT file here
Converts to .vtt — stays on your device
Why convert SRT to VTT?
- Adding captions to a self-hosted HTML5 <video> tag on a Next.js, Astro, or WordPress site where <track srclang="en" src="captions.vtt"> is the standard approach.
- Uploading captions to YouTube or Vimeo — both accept SRT directly but VTT uploads process more reliably and preserve cue identifiers.
- Publishing webinar recordings through a platform like Vimeo Pro, Wistia, or JW Player where VTT is the documented caption format.
- Wiring captions into a Video.js or Plyr-based player — both expect WebVTT by default and fail silently on SRT.
- Prepping subtitles for a podcast show-notes page that includes a video element (Descript, Riverside, or Castos exports often come as SRT).
- Converting SRTs translated via Subtitle Edit or Aegisub for a client whose CMS only accepts .vtt uploads.
How our converter works
Your SRT is parsed into a cue list — timestamp pairs plus caption text — then re-emitted as WebVTT with the required 'WEBVTT' header and period-separated milliseconds (SRT uses commas, VTT uses periods). Line breaks, inline tags like <i>, and multi-line captions all carry through. Conversion is instant, runs entirely in your browser, and nothing is uploaded — which matters for pre-release client cuts, NDA-bound course content, and episodes under embargo.
SRT vs VTT — what's the difference?
| Feature | SRT | VTT |
|---|---|---|
| Header | None — starts at cue 1 | WEBVTT required on line 1 |
| Timestamp separator | Comma (00:00:01,500) | Period (00:00:01.500) |
| Styling | Basic HTML tags | Positioning, cues, class-based styling |
| HTML5 <track> | Needs conversion first | Native — works out of the box |
| Best for | Desktop players, transcription tools | Web video, HTML5 players, modern platforms |
Frequently asked questions
Why do some HTML5 players ignore my SRT subtitles?
The HTML5 <track> element only supports WebVTT — the spec rejects SRT. Most browsers silently fail rather than show an error. Converting to VTT fixes the mystery 'why aren't captions showing' issue immediately.
Does YouTube need VTT or SRT?
Either works. YouTube accepts SRT, VTT, SBV, and a handful of others. VTT uploads are recommended when captions have positioning or formatting — the information round-trips better in YouTube's internal storage.
Are italics and bold preserved?
Yes. SRT's inline <i>, <b>, and <u> tags are valid in VTT too and carry through unchanged.
What if my SRT has encoding issues (weird characters)?
Re-save the SRT as UTF-8 in your text editor before converting. Subtitle files with Windows-1252 or UTF-16 encoding sometimes produce garbled output — UTF-8 is the subtitle world's universal standard.
Are my subtitles uploaded?
No. The conversion runs entirely in your browser. Client scripts, unreleased episode subs, and confidential webinar captions never leave your device.
Can I batch-convert a folder of SRTs?
Yes. Drop multiple SRT files at once; each becomes its own .vtt. For four or more files, the output is offered as a ZIP download.
About the SRT format
SRT (SubRip Text) is the oldest and most widely-supported subtitle format — plain text, numbered caption blocks, simple HH:MM:SS,mmm timestamps. It's been the default output of subtitle extractors, fansub tools, and professional captioning software for two decades. WebVTT (Web Video Text Tracks, W3C) is SRT's direct web-native descendant, designed specifically for HTML5 video. The structural similarity is deliberate: WebVTT files are nearly SRT with a mandatory 'WEBVTT' header and periods instead of commas in timestamps. The two formats co-exist because every desktop player and editor supports SRT, while every browser and modern streaming platform supports VTT — so the conversion is the standard bridge between subtitle authoring and web delivery.