Convert SRT to VTT
Turn SubRip subtitles into WebVTT for web players, HTML5 video and online courses.
How to convert SRT to VTT
Open your .srt file
Drop one SubRip file into the box above, or click to browse. It’s read by your browser and never uploaded.
Check what changes
The file text is shown before and after, side by side: the new WEBVTT header, the periods in the timestamps, the cue numbers that go away, and any tag WebVTT can’t keep.
Download the .vtt file
Save the converted file. It keeps the original name with the new extension, so
movie.srtbecomesmovie.vtt.
Why an SRT file doesn’t work as VTT
SubRip (.srt) and WebVTT (.vtt) look almost the same in a text editor: blocks of text, each with a start and an end time. WebVTT was in fact designed from SubRip. The differences are small, but each one is enough for a browser to refuse the file.
The header. A WebVTT file must start with the word WEBVTT on its first line. Browsers check for it before reading anything else. SubRip has no header at all, which is why an .srt file renamed to .vtt still shows no subtitles.
The millisecond separator. SubRip writes times as 00:01:02,345, with a comma, a habit from the French software it was born in. WebVTT uses a period: 00:01:02.345. A strict parser rejects a timing line with the wrong one, and the whole cue is skipped without any error on screen.
Cue numbers. Every block in an .srt file starts with a number. WebVTT doesn’t need them: a line above the timing is an optional name for the cue, used by scripts and styles. This tool leaves the numbers out, so the result is a clean WebVTT file rather than one with 800 cues named “1” to “800”.
Formatting. Both formats write italic, bold and underline as <i>, <b> and <u>, so those survive. Many .srt files also carry <font color="…"> tags or ASS codes such as {\an8} to move a line to the top of the screen. Desktop players understand them; WebVTT does not, and a browser would print them as text. They are removed, and the count is shown above the Download button.
Where you need WebVTT
HTML5 video. The <track> element accepts WebVTT only. If you are adding captions to a video on your own site, this is the format the browser wants, and the file must be served from the same origin as the page or with the right CORS headers.
Web players and course platforms. Video.js, JW Player, Plyr and most e-learning and webinar platforms build on the same browser feature, so they ask for .vtt as well. Some accept .srt and convert it for you; when a platform shows no captions after an .srt upload, converting first usually fixes it.
Streaming with HLS. Subtitle tracks in an HLS stream are segmented WebVTT. Encoders and packagers that take a sidecar file generally expect .vtt.
For a TV, a media server or an editor, keep the .srt. Smart TVs, Plex, VLC and most video editors read SubRip directly, and some of them don’t read WebVTT at all. If someone sent you a .vtt and you need the opposite, use Convert VTT to SRT.
Tips for a clean conversion
Check the encoding first. If accented letters look wrong in the preview, such as é instead of é, the file was read with the wrong text encoding. Pick the right one next to the file name before you download. The .vtt file is always saved as UTF-8, which WebVTT requires. For a file that stays garbled, Fix Subtitle Encoding compares the likely encodings side by side.
Name the track’s language. In HTML, give the track its language so the browser can label it: <track kind="subtitles" src="movie.vtt" srclang="en" label="English">.
Subtitles out of sync as well? Converting never changes the timing. If the lines appear too early or too late, fix them with Shift Subtitle Timing before or after converting.
Frequently asked questions
Will converting SRT to VTT change my subtitle timing?
No. Only the way timestamps are written changes, from a comma before the milliseconds to a period. Every line keeps its exact start and end time, and the preview shows both versions side by side so you can check.
Why doesn’t my .srt file work in an HTML5 video player?
The <track> element only reads WebVTT. A browser looks for the word WEBVTT on the first line and for periods in the timestamps, and a SubRip file has neither, so the track loads without showing anything. Renaming the file to .vtt is not enough; it has to be converted.
What happens to italics, colours and positions?
Italic, bold and underline are kept, because WebVTT writes them the same way. Font tags such as <font color> and codes such as {\an8} mean nothing to WebVTT, so they are removed. The tool counts them and tells you how many before you download.
Can I convert a .vtt file back to .srt here?
Not on this page, which only takes .srt files. Use Convert VTT to SRT for the other direction; it works the same way and shows what WebVTT features SubRip can’t keep.
Are my subtitle files uploaded anywhere?
No. The file is read and converted by JavaScript in this browser tab. It never leaves your device, and the tool keeps working if you go offline after the page has loaded.
Related tools
Shift Subtitle Timing
Subtitles too early or too late? Move every line by any number of seconds.
Open toolFix Subtitle Encoding
Repair garbled characters like é or ??? caused by the wrong text encoding.
Open toolConvert VTT to SRT
Turn WebVTT captions into SubRip for TVs, media players and video editors.
Open tool