Turn plain TXT subtitle text into SSA subtitles quickly—upload your TXT file and download the converted SSA file when it’s ready.
.txt files. Plain transcripts (one dialogue line per row) and TXT files that already contain bracketed or numeric timestamps are both supported. Batch upload works — drop a folder of episode transcripts in one pass.[Script Info] header (with ScriptType: v4.00), a [V4 Styles] block with a Default style, and an [Events] block where each TXT line becomes a Dialogue: event ready to load in VLC, MPV, or Aegisub..ssa individually or grab them as a single ZIP.A .txt transcript is the universal lowest common denominator — every word processor, dictation tool, and AI transcriber spits one out. SSA (SubStation Alpha v4.00) is the styled-subtitle format that desktop video players and the anime/karaoke editing world expect. Going from TXT to SSA gets you out of "flat dialogue" and into a file that VLC, MPV, MPC-HC, Aegisub, and Matroska softsubs treat as first-class. Typical cases:
.ssa skeleton lets you jump straight into the timing/styling workflow instead of fighting Aegisub's "actor separator" import prompt that plain .txt triggers..txt won't load as a subtitle track in any of them..mkv) softsub track — mkvmerge happily packs SSA into MKV; players display the original styling, and the audio/video streams stay untouched. Plain TXT isn't a Matroska-supported subtitle codec.Ctrl+3/Ctrl+4 start/end shortcuts on a real subtitle grid, not a generic text editor.If your TXT already has SRT-style timestamps, save the file as .srt first and use the SRT-to-SSA path so the real timings are preserved instead of replaced with placeholders.
| Property | TXT (plain text) | SSA (SubStation Alpha v4.00) |
|---|---|---|
| Extension | .txt |
.ssa |
| MIME type | text/plain |
text/x-ssa (de facto; not IANA-registered) |
| Encoding | Anything — UTF-8, UTF-16, CP1252, Shift-JIS | Typically UTF-8 today; spec predates the UTF-8 mandate |
| Created by | n/a (universal) | CS Low ("Kotus"), 1996, for anime fansubbing |
| Standards body | None (no defined structure) | None — community spec, no formal SDO |
| Structure | One text line per row; no required sections | INI-style sections: [Script Info], [V4 Styles], [Events] |
| Timing | None — plain transcript | Per-line Start/End at centisecond precision (H:MM:SS.cc) |
| Styling | None — text only | Per-line font, size, primary/secondary/outline/shadow colors, bold/italic, alignment, margins |
| Native player support | None (TXT is not a subtitle codec) | VLC, MPV, MPC-HC, PotPlayer, Kodi, mpv-android |
| Native editor support | Any text editor | Aegisub (primary), Subtitle Edit, Jubler |
| Best for | Drafting dialogue, transcripts, dictation output | Desktop playback, MKV softsubs, anime/karaoke, Aegisub workflows |
A plain TXT file carries no timing — the converter has to make a reasonable default so the output is a valid SSA script you can open and re-time in Aegisub. Here's what gets written:
| TXT input | SSA output | Notes |
|---|---|---|
| Each non-empty line | One Dialogue: event in [Events] |
Blank lines and trimmed whitespace are skipped |
| (no timestamps in source) | Sequential placeholder timings (e.g., 2-3 seconds per line, no overlap) | You re-time in Aegisub via the Audio panel (Ctrl+3 start, Ctrl+4 end) |
Speaker labels like ALICE: text |
Mapped to the Name field; text after the colon becomes the dialogue |
Matches Aegisub's TXT import "actor separator" convention |
Comment lines starting with # |
Written as Comment: events (ignored at playback) |
Aegisub default comment-starter character |
Inline **bold** or *italic* markdown |
Plain text by default | SSA override tags ({\b1}, {\i1}) need to be added in Aegisub or by hand |
| Non-ASCII characters | Preserved if source is UTF-8 | Re-save the source as UTF-8 first if you see mojibake |
A plain transcript carries no timing information, so the converter assigns sequential placeholder times (each line starts where the previous one ended, with a fixed duration around 2-3 seconds) and writes them as Dialogue: lines in the SSA [Events] block. The point is to produce a valid SSA file with a real timing grid you can drop on a video in Aegisub and adjust — Ctrl+P plays the clip, Ctrl+3 snaps the start of the selected line to the playhead, Ctrl+4 snaps the end. If your TXT already has timestamps (SRT-style 00:00:01,500 --> 00:00:04,000 or bracketed [00:01:23]), use the SRT-to-SSA path instead so the real times are preserved.
SSA (SubStation Alpha v4.00) is the original spec from 1996; ASS (Advanced SubStation Alpha, sometimes labelled v4.00+) layered on animation tags, vector drawing commands, finer karaoke control, and explicit Unicode handling on top of the same file structure. Both share the same [Script Info]/[Styles]/[Events] skeleton and most basic override tags. If a player or pipeline explicitly demands .ssa, use SSA. Otherwise, every modern player that reads SSA also reads ASS — convert to SSA now, then "Save As .ass" from Aegisub when you need the extra features.
One dialogue line per row, no blank lines mid-sentence, UTF-8 encoding. If you want speaker labels carried into the SSA Name field, prefix each line with the speaker followed by a colon — ALICE: I told you not to open it. Lines beginning with # are treated as comments and written as Comment: events (rendered as ignored placeholders in Aegisub). Avoid hard tabs and trailing whitespace; both are stripped, but a stray tab can confuse some downstream parsers.
VLC doesn't play TXT as a subtitle source at all — .txt isn't a subtitle codec, just a text file. SSA is one of libass's primary input formats and renders in VLC with full styling (font, color, outline, shadow, alignment, margins). Drop the converted .ssa next to your video file with a matching filename and VLC will auto-load it, or use Subtitle → Add Subtitle File to point at it manually.
Yes — that's the entire point of converting in the first place. Open the .ssa in Aegisub, use the Styles Manager to define fonts/colors/outlines/shadows for the Default style, set per-line override tags like {\an8} (top-center positioning) or {\b1} (bold), and preview against your video in real time. If you want animation effects, vector drawing, or per-syllable karaoke timing, save as ASS from inside Aegisub once you're done.
UTF-8 (without BOM is fine). Windows Notepad on builds before Windows 10 1903 defaulted to ANSI/CP1252, which silently mangles accented characters, em-dashes, and any CJK text the moment they're written into SSA. Open the source TXT in VS Code or Notepad++, switch the encoding to UTF-8, save, then re-convert. If your transcript came from a Japanese, Chinese, or Korean tool, re-save from Shift-JIS/GB18030/EUC-KR to UTF-8 before converting.
The converter runs entirely in your browser session — files never leave your device, there's no account requirement, no watermark, and no Pro-tier gating. Practical limits are bounded by your browser's memory: tens of megabytes of TXT (well into the thousands-of-lines range) convert without issue on a typical laptop. Close the tab and the session ends.
Yes. Click "Add Files" and multi-select, or drag a selection from your file manager into the page. Each TXT is converted independently to its own .ssa file, and you can download them individually or as a single ZIP. Since the work happens client-side, throughput scales with your CPU rather than network upload speed.