Convert SRT to VTT and VTT to SRT subtitles
Paste subtitle text — or drop a .srt or .vtt
file — and this page converts it between the two formats with
millisecond-exact timing. Cue text is kept verbatim, and identical
input always produces identical output.
Convert subtitles
Result
How it works
The conversion has three deterministic stages, all running in this tab:
- Detect. The input format is detected from the
content (a
WEBVTTheader means WebVTT; numbered or timestamp-led cues mean SRT), or taken from your chosen direction. - Parse. Cues are read into a neutral list of
start time, end time, text triples at millisecond
precision. WebVTT comment (
NOTE) and style (STYLE) blocks are skipped, and cue settings such as position or alignment are ignored because SRT has no equivalent. - Serialize. The cues are written in the target
format: numbered cues with comma milliseconds for SRT, a
WEBVTTheader with dot milliseconds for VTT. Cue text — including inline tags like<i>— is preserved verbatim.
Downloads are generated with the browser's Blob API and never touch the network. The same input always produces the same output, so re-running a conversion is safe and diffable.
When would you convert SRT to VTT?
The conversion itself is mechanical — timings and text stay the same and only the notation changes. People convert subtitles for a few common reasons:
- Uploading captions to YouTube. YouTube accepts
both
.srtand.vttcaption files, so converting between them is a routine step when you receive subtitles in one format and need the other. - Adding subtitles to a web page. HTML5
<video>uses<track>with WebVTT (.vtt) files, so an SRT file converted to VTT can be used directly on the web with no extra tooling. - Working with learning platforms. Moodle, Canvas, Kaltura, and Panopto accept WebVTT; converting your SRT export keeps the same cues without re-typing anything.
- Sharing with tools that expect one format. Many caption editors and players export only SRT or only VTT. Because this converter runs locally, the file never leaves your device while you switch formats.
SRT vs WebVTT: what changes when you convert?
SRT (SubRip) and WebVTT both store cues as start/end timestamps plus text, but they use different notation. Here is exactly what changes — and what stays the same:
| Property | SRT | WebVTT (VTT) |
|---|---|---|
| File header | None — cues start directly | WEBVTT on the first line |
| Cue numbering | Numbered (1, 2, 3…) | Optional, not required |
| Milliseconds separator | Comma: 00:00:01,000 | Dot: 00:00:01.000 |
| Inline tags | <i>, <b>, <u> | Same, plus <v> voice and <c> class |
| Cue positioning | None | position, align, line settings |
| Typical use | Desktop players, broadcast, most video tools | Web-native: HTML5 <track>, YouTube |
The same cue in both formats — only the header, the cue number, and the comma/dot separator differ; timing and text are identical:
1 00:00:01,000 --> 00:00:04,000 Hello from the first cue
WEBVTT 00:00:01.000 --> 00:00:04.000 Hello from the first cue
Supported inputs and limits
- Formats: SRT (with or without cue numbers) and WebVTT, in either direction. Both comma and dot millisecond separators are accepted on input.
- Preserved: cue timing to the millisecond and cue text verbatim, including multiline cues and inline tags.
- Dropped on conversion: WebVTT cue settings (position, align, line) and WebVTT NOTE/STYLE blocks — SRT cannot represent them.
- Size: bounded by this browser tab's memory. Very large subtitle files may take a moment.
- Limits: this prototype converts SRT and WebVTT only. It does not translate, re-time, or merge subtitles, and it never embeds subtitles into video files.
Frequently asked questions
Does my subtitle file leave my computer?
No. The page is a static bundle of JavaScript; parsing and conversion run in your browser tab. There is no server call that receives your subtitle text, so unreleased or unpublished content stays private.
Which formats are supported?
SRT (SubRip) and WebVTT (VTT). You can convert either direction, or let the tool auto-detect the input format and convert it to the other one.
Are cue timings preserved exactly?
Yes. Timing is kept at millisecond precision; only the notation differs between formats (SRT uses a comma before milliseconds, WebVTT uses a dot, and SRT cues are numbered).
What happens to WebVTT cue settings such as position and align?
Cue settings are dropped because the SRT format has no equivalent
for them. Cue text and timing are kept verbatim; inline tags such
as <i> or <v> are preserved.
Is SRT to VTT conversion free?
Yes. The converter is free and unlimited — there is no account, no upload, and no page reload. Parsing and serialization run entirely in your browser tab, so you can convert as many files as you like.
Can I convert subtitles for YouTube?
Yes. YouTube accepts both SRT and WebVTT caption files. Convert your file here, download the result, and upload it in YouTube Studio. This tool only changes the format — it does not translate captions or fix timings.
Related tools
- Text Hygiene — inspect invisible characters and clean up subtitle text.
- Media Optimizer — resize and compress images for media projects.
- Time Coordinator — plan schedules across time zones with exact local times.
- Document Hygiene — remove EXIF, GPS, and other metadata from photos and PDFs.
- Payload Workbench — inspect and transform JSON and Base64 payloads locally.
- RAG Cleaner — tidy messy text and HTML into clean Markdown for RAG pipelines.
- Volumetric Weight Calculator — calculate chargeable weight for courier and freight shipments.
- Passphrase Generator — create strong random passphrases locally from the EFF word list.
Part of Local Toolworks. Last reviewed: 2026-08-16.