SRT to VTT Converter
Convert SubRip to WebVTT or back, in both directions, entirely in your browser — with an honest list of what the format change dropped. Free, no login, no upload.
Drop a .srt or .vtt file here
The file is read and converted in your browser — nothing is uploaded, and no copy is kept.
Get the YouTube Outrank Checklist
The 12 checks we run on every top-ranking video — title, chapters, comment demand and content gaps. Free, straight to your inbox.
The checklist, plus the occasional YouTube growth tip. No spam, unsubscribe in one click.
Drop in a .srt or .vtt file and this works out which one it is and converts it to the other. It parses the cues properly rather than swapping commas for periods, so the result is a valid file in the target format — and it tells you what had to be left behind on the way.
What actually differs between the formats
SubRip is a cue number, a timestamp line with a comma before the milliseconds, and the text. WebVTT adds a WEBVTT header, uses a period, makes the hours field optional, and supports things SubRip has no room for: positioning (align:start position:0%), speaker tags (<v Roger>), styling blocks and per-word timings. SubRip in turn allows <font> tags that WebVTT rejects. That asymmetry is why the direction matters.
The YouTube auto-caption problem
Captions downloaded from YouTube come as WebVTT with word-level timings threaded through every line — <00:00:01.360><c> word</c>over and over. It's what makes captions appear word by word on YouTube and noise everywhere else. Converting to SubRip here strips it out and leaves clean sentences, which is normally what people mean when they say the file is unusable.
Captions are not the same job as localization
A converted caption file still says what it always said, in the language it was written in. YouTube's viewer-side auto-translate handles a good deal of the subtitle problem for free — what it never touches is the title and description, which are what a viewer actually reads in their own language before deciding whether to click. Those are per-language metadata fields you have to fill in yourself, and VidHalo's localization tool writes and publishes them across every language you serve, straight to your own channel.
While you're in the caption file
Timestamps are also how chapters work — a different mechanism, in the description rather than the caption track, with strict rules the chapters validator checks. If you're preparing an upload, the description checker covers the field those chapters live in, and VidHalo covers the question underneath all of it: what the videos already ranking for your topic actually say, and where they leave a gap you can take — the method is written up in how to outrank a YouTube video.
Frequently asked questions
What's the difference between SRT and VTT?+
They're the same idea with different rules. SubRip (.srt) is the older, simpler format: a cue number, a timestamp line using a comma before the milliseconds, and the text. WebVTT (.vtt) is the web standard — it starts with a WEBVTT header, uses a period before the milliseconds, allows the hours field to be left off, and adds things SubRip has no concept of: cue positioning, speaker tags, styling blocks and per-word timings.
Is converting between them lossless?+
Going from SRT to VTT is almost always clean, because WebVTT is the larger format. Going the other way is not: cue settings, <v> speaker tags, NOTE and STYLE blocks and word-level timings have no SubRip equivalent, so they have to go. This tool lists every one it drops rather than silently binning them. The timings and the words themselves are never changed in either direction.
Why does my YouTube caption file look like code?+
Auto-generated captions downloaded from YouTube are WebVTT with per-word timings embedded inline — that's the <00:00:01.360><c> word</c> noise running through the text. It makes captions animate word by word on YouTube and is meaningless anywhere else. Converting to SRT here strips it and leaves the sentence intact, which is usually exactly what people want when they say the file is unreadable.
Does YouTube accept SRT or VTT?+
Both. YouTube's subtitle upload takes .srt and .vtt (along with several broadcast formats), so for uploading captions to your own video either works. The conversion matters more for everything downstream: HTML5 video's <track> element requires WebVTT, while a lot of editing software and older players only read SubRip.
Are my files uploaded anywhere?+
No. The file is read and converted by JavaScript in your browser — it never leaves your device and nothing is stored. You can check by loading the page, disconnecting from the internet, and converting a file anyway.
Can I convert captions into another language here?+
No — this converts the file format, not the language. Translating captions is a separate job, and worth knowing that YouTube's viewer-side auto-translate already covers a lot of it for free. What auto-translate doesn't touch is your title and description, which is what viewers actually read when deciding whether to click.
Why does the converted file renumber the cues?+
SubRip requires sequential numbering, and WebVTT cue identifiers can be any text at all (or absent). Rebuilding the numbering is the only way to guarantee a valid SubRip file, so cues come out numbered from 1 in the order they appear.
More free tools
Don't just fix one video — outrank the ones beating you.
VidHalo reads the top-ranking videos for your topic — what they cover, where they're thin, what viewers still ask — and hands you the brief to beat them. Free tools get you started; the trial does the rest.