SRT to VTT Converter
Convert SubRip subtitles to WebVTT for HTML5 video, or WebVTT back to SRT. Fixes the timestamp separator and adds the WEBVTT header.
What is the SRT to VTT Converter?
SRT to VTT Converter turns SubRip subtitle files into the WebVTT format that HTML5 video needs, and converts them back again.
- Converts SRT to VTT and VTT back to SRT
- Swaps the comma and full stop millisecond separator correctly
- Adds the required WEBVTT header, and removes it on the way back
- Escapes stray & < > while preserving italic and voice tags
- Strips NOTE, STYLE and REGION blocks and cue settings for SRT
- Skips malformed blocks with a warning instead of failing
How to use the SRT to VTT Converter
- 1
Paste your subtitle text, or drop a .srt or .vtt file onto the drop zone.
- 2
Choose whether to convert to WebVTT or to SubRip.
- 3
Set whether to escape stray ampersands and angle brackets, and whether to keep cue identifiers.
- 4
Check the cue count and any warnings about skipped blocks.
- 5
Copy the result or download it with the right file extension.
About the SRT to VTT Converter
SRT to VTT Converter turns SubRip subtitle files into the WebVTT format that HTML5 video needs, and converts them back again. The two formats are close cousins, but the differences matter: SRT separates milliseconds with a comma while WebVTT uses a full stop, and a WebVTT file must begin with a WEBVTT header line or the browser will refuse it.
Going to WebVTT the numeric cue indexes are dropped and stray ampersands and angle brackets are escaped, while genuine styling tags such as italics are left intact. Going back to SubRip the header, comment and style blocks are removed, cue settings are stripped, entities are decoded and sequential indexes are added back.
Conversion happens entirely in your browser — drop a file in and it is read locally, never uploaded. That matters for unreleased video, client work and anything under embargo, and it means the tool works offline too. If a block is malformed it is skipped with a warning rather than breaking the run, so one bad cue in a long file never costs you the rest of the conversion.
Frequently asked questions
What is the difference between SRT and VTT?
WebVTT uses a full stop before the milliseconds, requires a WEBVTT header line and supports styling, positioning and comments. SubRip uses a comma, numbers every cue, and has no header or styling support.
Why will my SRT file not work in an HTML5 video player?
Browsers only accept WebVTT in a track element. An SRT file has the wrong timestamp separator and no WEBVTT header, so it is rejected outright — converting it fixes both problems.
Do italic tags survive the conversion?
Yes. Genuine markup such as italic, bold and voice tags is recognised and left alone. Only stray ampersands and angle brackets that would break the file get escaped.
What happens to a malformed cue?
Any block without a readable timing line is skipped and reported in a warning, and the rest of the file still converts. Nothing crashes and no cue is silently corrupted.
Is my subtitle file uploaded?
No. Files you drop are read locally in your browser and the conversion happens on your device, so unreleased or confidential material never leaves your computer.
Related tools
Subtitle Timing Shifter
Resync SRT and VTT subtitles by shifting every timestamp, rescaling for a different frame rate, or fitting a correction from two known times.
Filter Lines (Grep for Text)
Keep or delete lines matching plain text, a wildcard or a regular expression. Includes invert match, whole word and extract-only-the-match modes.
Remove Empty Lines
A free empty line remover that strips blank lines from text or code in one click. Optionally delete whitespace-only lines or collapse multiple blanks into one.
Find and Replace Text
Bulk find and replace text online with case-sensitive, whole-word and regex modes. See the replacement count and copy the cleaned result instantly.
Text Compare
Compare two texts online free and highlight every difference. A private text comparison tool that finds matches and changes right in your browser.