Web players want WebVTT, while editors, TVs and desktop players often expect SRT. Drop in one subtitle file or a whole folder’s worth, pick the target format, and download clean UTF-8 files, with an optional time offset and an encoding fix for garbled text.
Processing locally on your device
Overview
SRT (SubRip) and WebVTT are both plain-text formats made of cues with timestamps and text, but the details differ. VTT files must start with a WEBVTT header, use a period before the milliseconds (00:01:02.500) and can carry cue settings for position and alignment. SRT numbers every cue, uses a comma (00:01:02,500) and has no header. A browser’s HTML5 track element only accepts VTT, which is why SRT files need converting before they work on a website.
The converter reads each file, detects whether it is SRT, VTT or ASS/SSA, and writes the format you choose. Formatting is translated where possible: italics, bold and underline survive in both directions, SRT font colors are dropped for VTT because VTT does not support them, and VTT voice and class tags are removed for SRT. ASS files keep their text and timing, while their styles and positions, which neither target format can express, are left out. A switch can also remove all formatting.
Character encoding causes more trouble than the formats themselves. Older subtitles, especially for non-English languages, are often saved as Windows-1251 (Cyrillic), Windows-1256 (Arabic), GBK or Big5 rather than UTF-8. The converter detects UTF-8 and UTF-16 by their byte-order marks and validity, falls back to Windows-1252 otherwise, and lets you pick the right encoding from a list if the preview shows garbled letters. Output is always UTF-8, with an optional byte-order mark for TVs and older players that need one.
Everything runs in plain JavaScript in your browser, so conversion is instant, even for dozens of files. You can shift every cue earlier or later by a number of seconds, choose Windows (CRLF) or Unix (LF) line endings, preview the converted cues and raw text for any file, and download a single file or a ZIP of all of them.
| SRT | WebVTT | |
|---|---|---|
| Header | None | WEBVTT |
| Timestamp | 00:01:02,500 | 00:01:02.500 |
| Cue numbers | Required | Optional identifiers |
| Formatting | <i> <b> <u> <font color> | <i> <b> <u> <c> <v> and CSS |
| Positioning | No | Cue settings (align, position, line) |
| Typical use | Desktop players, editors, TVs | HTML5 video, web platforms |
Drop one or more SRT, VTT or ASS files onto the page.
Choose SRT or WebVTT as the output format.
Optionally enter a time offset, pick a source encoding, or remove formatting.
Click a file to preview its converted cues and text.
Download the file, or a ZIP when you converted several.
Use cases
Convert an SRT file to VTT so it can be added to a website’s video element with a track tag, or uploaded to a player that only takes WebVTT.
Turn VTT captions downloaded from a web platform into SRT for editing software, media servers or a smart TV that only reads SubRip.
An old Russian, Greek or Arabic SRT shows symbols instead of letters. Pick the original encoding, check the preview, and save it as clean UTF-8.
Drop a whole season’s subtitle files at once, apply the same half-second offset to all of them, and download a single ZIP.
Pro tips
Answers to common questions about the srt ↔ vtt.
The header (VTT starts with WEBVTT), the millisecond separator (comma in SRT, period in VTT), cue numbering (required in SRT, optional in VTT), and which formatting tags are allowed. The text and timing stay the same.
Yes. ASS and SSA files are converted to SRT or VTT with their dialogue text and timing. Styles, fonts, positions and effects are left out, because neither SRT nor VTT can represent them.
The file was saved in a legacy encoding and read as the wrong one. Choose the correct Source encoding, for example Windows-1251 for Cyrillic or Windows-1252 for Western European languages, and the preview will show the real letters. The output is saved as UTF-8.
Only if you enter an offset. Timestamps are copied to the millisecond, and the offset is applied equally to every cue.
When converting VTT to VTT (for example to shift timing or fix encoding), alignment and position settings are kept unless you turn that off. SRT has no positioning, so they are dropped when converting to SRT.
No. ToolEnhancer processes files on your own device inside the browser. They are never sent to, stored on or seen by our servers.
Yes. The srt ↔ vtt is free to use with no sign-up, no watermarks and no daily limits.