Subtitle converter
SubRip, WebVTT and plain text, in any direction. Shift the timing while you're here. It runs in your browser — the file never leaves it, and there's no account.
Result
What it handles
Subtitle files in the wild disagree with the spec in a handful of predictable ways. These are the ones that usually break a converter:
- Commas and full stops
- SubRip separates milliseconds with a comma, WebVTT with a full stop. Both are read, and each is written the way its own format expects.
- Missing hours
- WebVTT lets a timestamp start at minutes, and plenty of SubRip files do it too even though they shouldn't. Both are accepted.
- Byte-order marks and Windows line endings
- Stripped and normalised, rather than turning the first cue into an unreadable block.
- Cue settings and styling
- Positioning after the arrow, NOTE and STYLE blocks, and inline tags like <b> or <c.classname> are recognised and set aside.
- Speaker names
- A WebVTT <v Name> tag and a leading “Name:” in SubRip mean the same thing. Names survive the round trip, or you can drop them.
- Cue numbering
- Renumbered from one on the way out, so a file with gaps or duplicates in its numbering comes back valid.
If a block can't be read, the count is shown rather than quietly dropped. Output that lost four cues out of six hundred still looks completely fine, which is exactly why it needs saying.
Need the subtitles first?
txscribe transcribes audio and video with a timestamp on every word, and exports SubRip and WebVTT directly. Unlike this page, that part runs in the cloud.
See what it does