SRT to VTT converter (and VTT to SRT)
Paste or drop a subtitle file and get the other format back. Runs in your browser; nothing is uploaded.
Output · SRT → VTT
Files stay in this tab. Nothing is uploaded or stored.
How it works
The converter reads your file as text and decides the direction from the first line: a file that starts with WEBVTT is treated as VTT, anything else as SRT. You can override that with the direction switch.
Going SRT to VTT it changes the millisecond separator from a comma to a full stop (00:01:02,500 becomes 00:01:02.500), adds the WEBVTT header, and drops the numeric cue ids. VTT does not need them; tick "Keep cue numbers" if you want them kept as cue identifiers.
Going VTT to SRT it does the reverse: full stop to comma, header removed, cues renumbered from 1 because SRT players expect sequential numbers. Cue settings such as align:start and voice or class tags like <v Name> and <c.yellow> are removed, since SRT has no equivalent. <i>, <b> and <u> are kept in both directions. NOTE, STYLE and REGION blocks are skipped.
- Windows line endings (CRLF) and a UTF-8 byte-order mark are handled.
- Multi-line cues stay multi-line.
- Short timestamps like
01:02.500(no hours) are accepted and written out with hours. - A cue whose timing line cannot be read is listed under the output with its block and line number, and the rest of the file is still converted.
The file never leaves the tab. There is no upload, no account, and nothing is kept after you close the page.
When to use it
Use it when a platform wants a different caption format from the one your editor exported.
- HTML5 video (
<track>) only plays WebVTT. - LinkedIn video captions must be SRT.
- YouTube, Vimeo and most podcast hosts accept both.
- Transcription tools often export SRT; web players and some course platforms want VTT.
If you need to change the timing itself, this is the wrong tool; use a subtitle editor and convert afterwards.
Questions
- Is my subtitle file uploaded anywhere?
- No. The conversion runs in JavaScript in your browser. You can load the page, disconnect from the internet, and it still works.
- Why did the cue numbers disappear in the VTT output?
- WebVTT does not require cue identifiers and most players ignore them, so they are dropped by default. Tick "Keep cue numbers as VTT identifiers" to keep them.
- What does "malformed cue" mean?
- The block has no timing line in the form 00:00:01,000 --> 00:00:02,000, or the timestamps in it could not be read. The converter lists the block and line number, skips that cue, and converts the rest.
- Does it keep italics and bold?
- Yes. <i>, <b> and <u> are valid in both formats and are left alone. VTT-only markup such as <v Speaker> voice tags and <c.class> styling is removed when converting to SRT.
- Can it convert .sbv, .ass or .txt transcripts?
- No. It handles SRT and WebVTT only. A plain transcript without timestamps has nothing to convert.
- Is there a file size limit?
- 5 MB, which is several hours of captions. Larger files are refused with a message rather than silently truncated.
Last tested: