Tool 04 · Before publish

SRT ⇄ VTT subtitle converter

YouTube takes SRT. Web players want VTT. Convert between them in one click — lyrics, captions, chapters, anything. Everything runs in your browser.

🔒 Your files never leave your device
🎬

Drop your .srt or .vtt file here
or click to browse — or just paste the text below

How to convert SRT to VTT (or back)

  1. Drop your file onto the box above, or paste subtitle text straight into the input panel. The converter auto-detects which format you gave it.
  2. Click Convert. Timestamps, numbering, and headers are rewritten to the target format; the text itself is untouched.
  3. Download the converted file, named and extensioned correctly, ready to upload.

SRT vs VTT: what's actually different?

They're nearly twins, which is why conversion is lossless in practice:

FeatureSRTVTT
Timestamp separatorcomma (00:00:01,000)period (00:00:01.000)
File headernoneWEBVTT required
Cue numbersrequiredoptional
Used byYouTube uploads, editorsWeb players, HTML5 <track>

Rule of thumb for creators: keep your master captions in SRT (YouTube's preferred upload format), and convert to VTT whenever you embed the video on your own site or a web player asks for it.

Why lyrics files matter for long-form music channels

A 2-hour mix with synced lyric captions is more accessible, ranks for lyric searches, and gives YouTube clean text to index. Keep one SRT per upload in your archive folder — it's a few kilobytes that keeps paying rent.

Frequently asked questions

Is my subtitle file uploaded anywhere?

No. The conversion is plain JavaScript running in your browser tab. You can disconnect from the internet after the page loads and it still works.

Does it handle styling tags like <i> or positioning?

Basic tags (<i>, <b>) pass through unchanged and work in both formats. VTT-only cue settings (position, alignment) are dropped when converting to SRT, since SRT has no equivalent.

My file uses a weird encoding and shows � characters.

Re-save the file as UTF-8 in any text editor and re-drop it. UTF-8 is also what YouTube expects on upload.