SRT to VTT, VTT to SRT, or timestamps stripped to plain text — in your browser, with every cue timing kept to the millisecond.
No installs, no upload, no account.
No subtitle file yet? Generate one from any audio or video.
Generate subtitles with AIDrop a file, pick a format, download. The conversion itself takes one pass over the text.
The format is detected by the file's own content, not its extension: a file whose first characters are WEBVTT is read as WebVTT, anything else as SubRip. A byte-order mark and Windows line endings are handled on the way in, so files straight from a Windows editor parse the same as any other.
SRT for players, editors and YouTube uploads; VTT for HTML5 <track> and web players; TXT when you want the spoken words with no numbering and no timecodes. The tool preselects whichever of SRT/VTT your file is not.
The converted file is built in the browser and saved under the original name with the new extension: episode-04.srt becomes episode-04.vtt. Nothing was sent anywhere, so there is no queue and no limit on how many files you run.
The same cues, three destinations — a player, a web page, or something to read.
SubRip is what VLC, desktop players, YouTube's caption uploader and every video editor accept. It is also what most transcription services hand you, which is why it is the format you already have.
An HTML5 <track> element will not load an .srt file at all — WebVTT is the only caption format browsers parse natively. Converting is the whole fix; the cues themselves need no rewriting.
Stripping the indexes and timecodes turns 900 cues into a plain script you can paste into a document, search, or hand to someone who just wants the words.
Upload forms are picky in different directions — one wants SRT, the next only VTT. Converting an existing file takes a second and beats re-generating captions from the video.
Interviews under embargo, client footage, an unreleased episode — the subtitle text stays on your machine because the conversion is a local rewrite, not a server job.
If what you have is the video, SlayScribe transcribes it and exports SRT or VTT directly — the same writer this converter uses, so the output is byte-identical.
Both formats store the same thing: a start time, an end time, and lines of text. They differ in three details, and those details are the entire conversion. SubRip numbers every cue and separates milliseconds with a comma — 00:01:04,500. WebVTT drops the numbering, requires the literal header WEBVTT as the first line of the file, and separates milliseconds with a dot — 00:01:04.500. Because the spoken text is identical in both, converting between them loses nothing that a player reads back.
Including the parts it drops and the two things it will not do.
SRT output renumbers the cues from 1 in reading order — useful when the source file was edited by hand and its indexes are out of order or duplicated. VTT output writes the WEBVTT header, a blank line, then the cues with no numbers at all, because WebVTT does not use them. TXT output is the cue text and nothing else, one cue per line. Every file ends with a trailing newline, which is what strict players expect.
Positioning and styling do not survive, because SubRip has nowhere to put them: cue settings written after the timestamp (align, line, position), cue identifier lines, and any STYLE, REGION or NOTE blocks are all left behind. Inline markup inside the text — <i>, <b>, <font> — is carried across untouched, since both formats treat it as part of the line. If your VTT relies on positioning, keep the original: the conversion is one-way for those attributes.
The parser reads timestamps with either a comma or a dot, and with the hour field missing (00:12.480 is a valid WebVTT short form). It normalises Windows and old-Mac line endings, strips a byte-order mark, and recovers when cues are not separated by a blank line — a bare index number followed by a timing line is treated as the start of the next cue. It only refuses a file when it can find no timestamps at all, and says so instead of writing an empty download.
The browser reads the file as UTF-8. A subtitle saved in a legacy code page — Windows-1251 for Cyrillic, Windows-1252 for Western European, Shift-JIS for Japanese — arrives with its accented characters already mangled, and no converter can undo that afterwards. The tell is boxes or question marks in the on-screen preview of the first cues. The fix is upstream: reopen the original in a text editor, save it as UTF-8, then convert.
It will not fix subtitles that run ahead of or behind the audio — conversion copies the timings across to the millisecond and never touches them; shifting the whole track is a separate job, and SRT Time Shift does it. And it reads SubRip and WebVTT only, so SSA/ASS, SBV, TTML and LRC files are out of scope rather than silently mishandled.
Converting subtitles on SlayScribe costs nothing and needs no account, because the work happens in your browser rather than on our servers — there is no per-file cost for us to pass on.
Three: SRT to VTT, VTT to SRT, and either of them to plain TXT with the indexes and timecodes removed.
SRT and VTT store identical start and end times, so every cue keeps its position to the millisecond; only the punctuation of the timestamp changes, from a comma to a dot or back.
No part of the file leaves the tab: the text is read, parsed and rewritten by the page itself, and the download is assembled in memory on your device.
Converting a VTT file to SRT drops its cue settings such as align and position, its cue identifier lines and any STYLE, REGION or NOTE blocks, because SubRip has no equivalent for them. Inline tags such as italic and bold survive the trip in both directions.
The file was almost certainly saved in a legacy encoding such as Windows-1251 or Windows-1252, while the browser reads subtitles as UTF-8. Re-save the original as UTF-8 in any text editor, then convert it again.
Changing the format never moves a cue. Use SRT Time Shift to push every cue earlier or later by a set number of milliseconds, then convert the shifted file if you also need a different format.
The SlayScribe subtitle converter reads SubRip and WebVTT only. Convert an SSA/ASS, SBV or TTML file to SRT in a subtitle editor such as Subtitle Edit or Aegisub first, then bring it back here.
The SlayScribe subtitle converter applies no size cap and counts nothing against a quota; the practical ceiling is how much text a browser tab holds in memory, which a feature-length subtitle file is nowhere near.
SlayScribe transcribes audio and video in 99 languages and exports the result as SRT or VTT, written by the same code this converter uses.
SlayScribe turns any audio or video into accurate text in seconds — transcripts, captions, and subtitles in 99 languages.
Transcribe to text