Turn WebVTT (.vtt) subtitle files into SSA (.ssa) subtitles quickly with a simple online converter.
.vtt files. The converter parses cues, timestamps, and any inline styling tags. Batch upload is supported — drop a season folder of WebVTT tracks in one pass.[Script Info] header, a [V4 Styles] block with a Default style, and an [Events] block where each VTT cue becomes a Dialogue: line..ssa file individually or grab them as a ZIP.WebVTT is the W3C standard for HTML5 <track> captions — it's what YouTube, Vimeo, and every modern browser's <video> element consume. SSA (SubStation Alpha v4.00) is the older sibling of ASS that desktop players like VLC, MPV, and MPC-HC render natively, and the format anime fansubs and karaoke groups still ship in because of its rich styling system. Going from VTT to SSA is the right move when you need:
.vtt file dropped on VLC works, but advanced positioning or color often falls back to plain text..vtt into Aegisub round-trips through SSA anyway, so converting up front gets you straight to the Styles Manager and timing tools..mkv) supports SSA/ASS as a softsub track that players display with the original styling preserved. WebVTT in MKV is supported by the spec but inconsistently rendered by hardware players and TV apps.| Property | VTT (WebVTT) | SSA (SubStation Alpha v4.00) |
|---|---|---|
| Extension | .vtt |
.ssa |
| MIME type | text/vtt |
text/x-ssa (de facto) |
| Encoding | UTF-8 required (W3C spec) | Typically UTF-8 or local codepage; spec predates UTF-8 mandate |
| Standards body | W3C Candidate Recommendation Draft | No formal standards body; spec authored by CS Low ("Kotus") in the late 1990s |
| Native browser support | Chrome, Firefox, Safari, Edge via <track> |
None — no browser plays SSA in <video> |
| Native player support | VLC, MPV (limited styling) | VLC, MPV, MPC-HC, PotPlayer, mpv-android (full styling) |
| Styling | Inline tags (<b>, <i>, <c.classname>) plus external CSS via ::cue |
Full per-line styles: font family, size, primary/secondary/outline/shadow colors, bold/italic, alignment, X/Y position, rotation |
| Karaoke / per-syllable timing | Not supported | Native (\k, \K, \kf tags in ASS extensions) |
| Positioning | line:, position:, align: cue settings |
Margins (MarginL/R/V) plus override tags (\pos, \move) |
| Best for | HTML5 video on the web; YouTube/Vimeo upload | Desktop playback, MKV softsubs, anime/karaoke, Aegisub workflows |
| VTT element | SSA mapping | Notes |
|---|---|---|
Cue timing (00:00:01.500 --> 00:00:04.000) |
Dialogue: 0,0:00:01.50,0:00:04.00,Default,... |
SSA uses centisecond precision (10 ms), VTT uses milliseconds — last digit is truncated |
<b>...</b>, <i>...</i>, <u>...</u> |
{\b1}...{\b0}, {\i1}...{\i0}, {\u1}...{\u0} |
Bold/italic/underline round-trip cleanly |
<c.red>...</c> color class |
Default style color (class names not preserved) | VTT relies on external CSS for class colors; SSA needs the color baked into the Style or override tag |
| Line breaks within a cue | \N inside the dialogue text |
SSA uses \N for hard line breaks, \n for soft breaks |
line:, position:, align: |
Default Alignment value or \an override |
VTT bottom-center maps to SSA Alignment 2; top-center to 8; left/right via 1/3/7/9 |
WebVTT NOTE blocks |
Stripped | SSA has Comment: event lines but converters typically drop notes |
| WebVTT regions | Not represented | SSA has no equivalent grouping construct |
Chapter cues (CHAPTER track) |
Not converted | Chapters belong in the container (MKV chapters element), not in the subtitle file |
Bold (<b>), italic (<i>), and underline (<u>) tags map directly to SSA override codes ({\b1}, {\i1}, {\u1}) and render in VLC/MPV exactly as you'd expect. Color is more nuanced: VTT typically encodes color via CSS class names (<c.red>text</c>) that reference an external stylesheet or in-file STYLE block, while SSA wants the color baked into the Style definition or set inline ({\c&H0000FF&} for red). Most converters fall back to the Default style's color, so if you relied on per-cue colors, plan to edit the resulting SSA in Aegisub or set per-style colors there.
SSA (SubStation Alpha v4.00) was the original spec; ASS (Advanced SubStation Alpha, sometimes called v4.00+) added animation tags, vector drawing commands, accept-color tags, and finer karaoke control. Both share the same file structure and most basic tags. If your target player or editor explicitly asks for .ssa, use SSA. If you have any choice and you want the modern feature set, convert to ASS instead — every player that reads SSA also reads ASS, but not vice versa. You can always open an .ssa in Aegisub and "Save As" .ass later.
VLC does play VTT, but support is uneven across builds and platforms, and VLC's VTT renderer ignores most positioning/styling beyond plain text. SSA/ASS, by contrast, is one of libass's primary input formats and renders with full fidelity in VLC, MPV, MPC-HC, PotPlayer, and Kodi. If you're shipping a desktop or TV viewing experience and care about styled signs, song lyrics, or precise positioning, SSA is the more reliable choice.
VTT stores times to millisecond precision (HH:MM:SS.mmm); SSA's Dialogue: line uses centisecond precision (H:MM:SS.cc, where cc is hundredths of a second). The converter rounds to the nearest 10 ms. For dialogue this is imperceptible — a 7 ms shift is well below human perception of audio/visual sync. For frame-accurate karaoke at 24 fps (one frame = 41.7 ms), the rounding still falls inside one frame.
Yes. Click "Add Files" and select multiple .vtt files, or drag a selection from your file manager. Each file is converted independently and you can download them individually or as a single ZIP. Because conversion happens in your browser session, there's no upload bottleneck — speed is bounded by your CPU, not your connection.
WebVTT regions (used to scroll-anchor cues to a rectangular display area) have no equivalent in SSA and are stripped during conversion. Chapter cues belong in the video container (MKV chapters element or MP4 chap track), not in a subtitle file, so they're dropped as well. Plain caption and subtitle cues — by far the most common content in a .vtt — convert without issue.
Two likely causes. First, your source VTT may have been saved in a Windows codepage (CP1252) rather than UTF-8; the W3C WebVTT spec requires UTF-8, and most converters assume it. Re-save the VTT as UTF-8 in VS Code, Notepad++, or any editor with an "Encoding" menu, then re-convert. Second, Notepad on older Windows builds (pre-1903) struggled with UTF-8 without a BOM — open the file in VS Code or Notepad++ instead, where SSA syntax highlighting also makes the structure obvious.
No. Conversion runs client-side in your browser session — the file never leaves your device. There's no account, no watermark, no file-count cap, and no Pro tier gating the converter. Close the tab and the session ends.
Yes — open the resulting .ssa in Aegisub (free, cross-platform) and use the Styles Manager to set fonts, colors, outlines, shadows, and default alignment. Aegisub's preview pane shows changes against your video in real time. If you want animation, karaoke effects, or vector drawing, save as ASS from inside Aegisub once you've finished tweaking.