Convert to WebVTT

.srt .ass .ssa → .vtt Client-side Batch up to 50 files
Open Convert to WebVTT

The Problem

When you build a website with a <video> element, or upload to YouTube, Vimeo, Plex, or Jellyfin, subtitles must be in WebVTT format. Trying to load an .srt file directly into an HTML5 video element either silently fails or produces console errors in most browsers.

WebVTT is also the format required by the W3C Web Accessibility Initiative for captioning — relevant if your content has legal captioning requirements.

How to Use It

Step 1 — Upload your files

Drag .srt, .ass, or .ssa files onto the upload zone. Up to 50 files at once.

Step 2 — Convert

Click Convert to WebVTT. Instant, browser-side.

Step 3 — Download

Download individually or as ZIP.

What Changes in the Conversion

SRT → WebVTT

Two things change:

  1. A WEBVTT header is added at the top of the file — required for browser acceptance.
  2. Timestamp millisecond separators change from comma to period: 00:00:01,50000:00:01.500.

ASS / SSA → WebVTT

All ASS styling tags are stripped. Only dialog text and timestamps are preserved, same as the Convert to SRT process.

Using WebVTT with HTML5 Video

<video controls>
  <source src="movie.mp4" type="video/mp4">
  <track kind="subtitles" src="movie.vtt" srclang="en" label="English" default>
</video>

The default attribute enables the track automatically. Use a valid BCP 47 language code for srclang (en, fr, zh, etc.).

Platform Compatibility

PlatformNotes
HTML5 <video>Native support in all modern browsers
YouTubeUpload via "Add subtitles" in YouTube Studio
VimeoUpload during or after video publish
Plex / JellyfinDrop .vtt alongside the video file

Tips

  • SRT is still fine for desktop players. VLC, MPC-HC, and mpv read SRT natively. Convert to VTT only when targeting web or streaming.
  • The first line of a valid VTT file must be exactly WEBVTT — browsers reject files where this is missing or has leading whitespace.