Free online TXT converter. Convert TXT to SRT, VTT, ASS, SSA, SUB and more online — no limits, no watermark.
.txt file or click "Upload .txt". The input is a plain-text transcript — one caption per line works best. You can also paste text directly, and batch is supported if you have several transcripts to convert at once.00:01:23 so the converter parses and standardizes them instead.<track> captions on the webA .txt file is just plain text — it carries the words but none of the timing, numbering, or structure that a video player needs to show captions in sync. In our config a TXT here is treated as subtitle source text: typically a transcript you got from a dictation app, a meeting tool, an auto-caption export, or a script you typed by hand. On its own a player won't display it as captions. Converting wraps that text in a real subtitle container so it can be loaded as a caption track, uploaded to YouTube, embedded in an HTML5 video, or styled for an anime release.
The main reasons people convert a transcript into subtitles:
<track> elements expect for in-browser captions.The honest caveat: a transcript with no timestamps has no real timing to preserve. Auto-timing gives each line an equal, evenly-spaced duration so the file is valid and editable — it does not match speech to the audio. See the FAQ below on where timecodes come from.
| Format | Timing model | Styling | Best for | Native web <track> |
|---|---|---|---|---|
| SRT (SubRip) | HH:MM:SS,mmm cue times |
None (plain text) | Universal default; players, YouTube, downloads | No (needs VTT) |
| VTT (WebVTT) | HH:MM:SS.mmm cue times + WEBVTT header |
Basic positioning, CSS ::cue |
HTML5 web video, browser captions | Yes |
| ASS / SSA | Cue times + override tags | Fonts, colors, position, karaoke | Anime, karaoke, styled captions | No |
| SBV | Cue times (SubViewer) | None | YouTube/legacy caption uploads | No |
| SUB (MicroDVD) | Frame-based ({start}{end}) |
Minimal | Older players, frame-rate-locked video | No |
| LRC | [mm:ss.xx] per line |
None | Synced song lyrics in music players | No |
| TTML / DFXP | XML timed text | Rich (XML styling) | Broadcast, captioning workflows | No |
| TXT / CSV | None / tabular | None | Readable transcript; spreadsheet review | No |
Need just one direction? Jump straight to a pair: TXT to SRT · TXT to VTT · TXT to ASS · TXT to SSA · TXT to SBV · TXT to LRC · TXT to SUB · TXT to CSV.
They are synthesized, not recovered — this is the key thing to understand. A plain transcript contains words but no information about when each line is spoken, so there is nothing to "convert" timing from. In Plain-text mode the converter gives every line the same Default duration per cue (2.5 seconds by default) and lays the cues end to end, producing a valid, sequentially numbered SRT or VTT you can then fine-tune. It will not match your text to the actual audio, because the source never had that data. If your transcript already contains timestamps like 00:01:23, switch to Timecoded mode so those real times are parsed and standardized instead of overwritten. For frame-accurate subtitles from scratch, you'll still need to nudge the cues in a subtitle editor against the video.
For most uses, SRT — it's the SubRip format virtually every player, editor, and platform (including YouTube) accepts, and it's plain and easy to edit. Choose VTT (WebVTT) when the captions go on an HTML5 web video via a <track> element, since that's the W3C standard browsers expect and SRT is not loaded natively in <track>. Choose ASS or SSA only when you need styling, positioning, or karaoke effects — fonts and colors that SRT simply can't store. LRC is for synced song lyrics rather than spoken captions.
They're close cousins. Both are line-based timed-text formats, but SRT separates the milliseconds with a comma (00:01:23,500) while VTT uses a period (00:01:23.500) and requires a WEBVTT header line at the top of the file. VTT also supports cue positioning and CSS styling for the browser, which is why it's the format HTML5 video uses. Practically: download SRT for desktop players and platform uploads, VTT for embedding captions directly in a web page. Converting between the two is mostly a matter of the separator and header, so it's lossless for the text and timing.
Yes — pick TXT as the output and the converter strips the cue numbers and timecodes, leaving just the spoken lines as a clean, readable transcript. That's the right move when you want notes from a video, a document to translate, or text to publish, rather than a caption file. CSV is the related option if you want each cue in a row with its timing kept in separate columns for review in a spreadsheet.
In our testing, a 40-line English-and-Spanish transcript with accented characters converted to SRT cleanly with UTF-8 output and no mojibake, and each source line became its own cue. The default output is UTF-8 with no BOM, which is what YouTube and FFmpeg expect; if an older desktop player shows garbled accents, re-export with the UTF-8-with-BOM option. Each line in your transcript becomes one cue, so put one caption per line — a single wall-of-text line becomes one very long cue rather than several.
Yes. The conversion runs entirely in your browser — your file is parsed and rewritten on your own device and never uploaded to or stored on our servers. There's no sign-up, no watermark, and your text never leaves your computer. Subtitle files are small plain text, so the conversion is near-instant no matter how long the transcript.