XConvert
Downloads
Pricing

Convert TTML to ASS Online

Turn a TTML subtitle file into an ASS subtitle file quickly—right in your browser, with no software installation needed.

Input (TTML)
Output (ASS)

How to Convert TTML to ASS Online

  1. Upload Your TTML File: Drag and drop the .ttml, .dfxp, or .xml file onto the page, or click "Add Files" to browse. Batch upload is supported, so you can convert an entire season of Netflix-style subtitles in one pass. Files are processed in your browser session — nothing is sent to a server.
  2. Pick ASS as the Output Format: ASS is preselected on this page (the target slot is locked to .ass). The converter reads the TTML <tt> document, walks every <p> element with begin/end attributes, and rewrites the cues into ASS Dialogue: lines under a [Script Info] / [V4+ Styles] / [Events] skeleton compatible with Aegisub, VLC, and mpv.
  3. Paste or Upload (Optional Direct-Paste): If you only have the raw TTML markup (copied from a browser dev-tools network tab when ripping streaming captions, for example), paste it directly into the text area instead of uploading a file. The output ASS appears in the same panel for copy or download.
  4. Convert and Download: Click "Convert." Save the .ass file with the same base name as your source, or rename it to match your video container (movie.mkv → movie.ass) so MPC-HC, VLC, mpv, and Plex auto-load it. No sign-up, no watermark, no email gating.

Why Convert TTML to ASS?

TTML (Timed Text Markup Language) is the W3C-standardized XML format used by Netflix, Disney+, HBO Max, Prime Video, BBC iPlayer, and most major OTT services for caption delivery. ASS (Advanced SubStation Alpha) is the format the desktop and fan-subbing world actually edits in — it ships with Aegisub, plays natively in VLC and mpv, and supports karaoke, override tags, and free-form positioning that TTML can express but few TTML-aware editors let you tweak. Converting from TTML to ASS is the standard first step whenever you need to actually work on a subtitle file pulled from a streaming source.

  • Edit streaming captions in Aegisub — TTML files ripped from Netflix, Disney+, or Prime Video open as one giant XML blob in most editors. Converted to ASS, every cue becomes a clickable row in Aegisub with audio-waveform sync, frame-accurate timing, and shift/scale tools.
  • Re-style for personal playback — TTML's styling is delivered exactly as the streamer wants it (small white text, single position). ASS lets you change font, colour, outline, drop shadow, and screen position per cue using override tags like {\fnArial}, {\c&H00FFFF&}, or {\pos(960,1000)}.
  • Karaoke and lyric typesetting — TTML doesn't carry the per-syllable timing fan-subbers use. After conversion, you can add \k, \kf, or \ko tags in Aegisub to time syllables in centiseconds for music videos, anime openings, or language-learning subs.
  • Burn-in or hardsub workflow — FFmpeg's subtitles= filter and HandBrake's hardcoded-subtitle option both consume ASS directly with full styling preserved; TTML support is more limited and often falls back to plain-text rendering.
  • Cross-language and signs-and-songs tracks — Anime release groups, language-learning channels, and accessibility re-mastering communities standardize on ASS because it lets a single file carry dialogue, on-screen signs, and karaoke layers using the Layer field in [Events].
  • Backup before round-tripping — If you plan to convert back later (e.g., to deliver a translated version to a streamer), keep the original TTML and work on the ASS copy; round-trip to TTML preserves text and timing but not ASS-specific styling.

Need the reverse direction or a related format? See ASS to TTML for delivery-ready XML, TTML to SRT for a simpler player-agnostic file, or SRT to ASS when you start from plain SubRip cues.

TTML vs ASS — Format Comparison

Property TTML (.ttml / .xml / .dfxp) ASS (.ass)
Standard W3C Recommendation (TTML1 finalised Nov 2010; TTML2 finalised Nov 2018) De facto, originally CS Low / "Kotus" tooling for SubStation Alpha v4+; no formal standards body
Syntax XML (<tt>, <head>, <body>, <div>, <p>) INI-like sections: [Script Info], [V4+ Styles], [Events]
File extensions .ttml, .xml, .dfxp .ass (and legacy .ssa for SubStation Alpha v4)
MIME type application/ttml+xml text/x-ass (unofficial; commonly text/plain)
Timing precision Tick-based, expressible to sub-millisecond 10 ms (hundredths of a second)
Styling primitives CSS-like attributes via tts: namespace, separate <style> definitions Style rows in [V4+ Styles] plus inline override tags ({\b1}, {\i1}, {\c&Hbbggrr&}, {\pos()})
Karaoke / per-syllable timing Not natively supported Native via \k, \kf, \ko tags in centiseconds
Native player support Streaming web players, Netflix/Disney+ pipelines, HLS via Apple's TTML support (WWDC 2017) VLC, mpv, MPC-HC, Aegisub; most anime-community players
Industry use OTT delivery, broadcast (EBU-TT, SMPTE-TT), accessibility compliance Anime fan-subs, karaoke, typography-heavy custom subs
Profile / variants DFXP, EBU-TT, SMPTE-TT, IMSC 1.0 / 1.1 (Netflix Japanese, Disney+, BBC) SSA v4 (legacy), ASS v4+ (current), ASS v4++ (rare extensions)

TTML Feature → ASS Mapping Quick Guide

What survives a TTML-to-ASS conversion depends on which TTML features the source uses. Most streaming-ripped TTML stays close to the IMSC 1.x subset, which maps cleanly.

TTML element / attribute ASS equivalent Notes
<p begin="..." end="...">text Dialogue: 0,H:MM:SS.cs,H:MM:SS.cs,Default,,0,0,0,,text Timecodes are rounded to 10 ms; sub-millisecond precision is lost
tts:fontStyle="italic" {\i1}…{\i0} One-to-one
tts:fontWeight="bold" {\b1}…{\b0} One-to-one
tts:color="#RRGGBB" {\c&Hbbggrr&} Note ASS uses BGR byte order, not RGB
tts:textAlign="center" + region Style alignment field (2/5/8 for bottom/middle/top centre) Region positioning approximated via [V4+ Styles] Alignment
<br/> inside <p> \N literal in dialogue text Same line-break semantics
Multiple <region> definitions Separate styles or {\pos(x,y)} override per cue Free positioning preserves screen coordinates; complex region animation is dropped
tts:textDecoration="underline" {\u1}…{\u0} One-to-one
Ruby annotations (Japanese IMSC 1.1) Not natively expressible in ASS Ruby text is flattened into the main cue; consider keeping TTML for Japanese delivery
SMPTE-TT animations (<animate>) Approximated with \t() transitions where possible Complex tweening is lossy

Frequently Asked Questions

Will positioning from my TTML file carry over to ASS?

Basic positioning does — if your TTML uses standard <region> definitions with tts:origin and tts:extent, the converter maps them to ASS \pos(x,y) overrides or to the Alignment field in [V4+ Styles]. Complex region-level animations and streaming-service custom regions are approximated; for pixel-perfect positioning of every cue you may want to open the result in Aegisub and use the visual typesetting tool to fine-tune coordinates against your video's real resolution (set PlayResX/PlayResY in [Script Info] to match).

My TTML is from Netflix / Disney+ — will it convert correctly?

Yes for the dialogue text and timing, with caveats for styling. Netflix delivers in TTML1 (or IMSC 1.1 for Japanese), and Disney+ standardises on IMSC 1.1; both are well-formed TTML profiles that the converter parses without trouble. What you may lose: Netflix's "forced narrative" flags, signs-and-songs region metadata, and any vendor-specific extensions sit outside the IMSC core and aren't representable in ASS — you'll get clean dialogue cues with default styling, ready to re-style in Aegisub.

Why is my ASS file showing weird colours?

ASS stores colours in BGR byte order, not RGB. A TTML tts:color="#FF0000" (red) becomes {\c&H0000FF&} in ASS — the bytes are reversed. The converter handles this automatically, but if you hand-paste a hex code from a web tool into an ASS file, you'll see blue where you expected red unless you swap the byte pairs.

Can I convert TTML to ASS without losing italics or bold?

Yes — tts:fontStyle="italic" becomes {\i1}…{\i0} and tts:fontWeight="bold" becomes {\b1}…{\b0} in the rewritten dialogue text. These map one-to-one and are preserved. Underline (tts:textDecoration="underline") and strike-through map similarly to {\u1} and {\s1} override tags.

What's the difference between ASS and SSA, and which does this tool output?

SSA (SubStation Alpha v4) is the older format; ASS (Advanced SubStation Alpha, sometimes labelled SSA v4+) added the [V4+ Styles] section with extended properties (outline, shadow, alpha, BorderStyle) and override tags. This converter outputs ASS v4+ with a [V4+ Styles] block — the format Aegisub uses by default and what every modern player expects. If you specifically need legacy SSA v4, use the TTML to SSA variant instead.

Why does Aegisub warn about PlayResX/PlayResY mismatch when I open the converted file?

ASS uses PlayResX and PlayResY in [Script Info] as the coordinate space for font sizes and \pos() overrides — everything is scaled relative to that resolution. The converter writes sensible defaults (1920×1080 or 1280×720 depending on the source), but if your video is a different resolution Aegisub offers to rescale on load. Accepting the rescale preserves visual layout; declining keeps the original numbers but may push cues off-screen.

Can I round-trip ASS back to TTML to deliver to a streaming service?

Technically yes via ASS to TTML, but you'll lose ASS-specific features that don't have TTML equivalents — \k karaoke timings, complex \t() animations, and most override-tag styling collapses to plain text or a small subset of tts: attributes. For Netflix or Disney+ delivery, follow their published IMSC 1.1 templates rather than relying on a generic round-trip; the validator at partnerhelp.netflixstudios.com is the source of truth for what they accept.

Does this tool support DFXP files?

Yes. DFXP (Distribution Format Exchange Profile) is the original name for what's now called TTML1, and the file structures are identical — only the extension differs. Rename .dfxp to .ttml if your browser refuses the upload, or paste the XML directly into the text panel. The same applies to .xml files written against the TTML schema.

Is anything uploaded to your servers?

No. The TTML parser and ASS writer run entirely in your browser using JavaScript — your subtitle files never leave the page. That matters if your TTML contains pre-release dialogue, embargoed translations, or anything else covered by an NDA you'd rather not pipe through a third-party server.

Related Convert tools
Convert Ttml To SrtConvert Ttml To VttConvert Ttml To SsaConvert Ttml To SbvConvert Srt To AssConvert Vtt To AssConvert Ssa To AssConvert Sbv To Ass

Image Tools

Image CompressorCompress JPEGCompress PNGCompress GIFCompress WebPImage ConverterJPG ConverterImage Resizer

Video Tools

Video CompressorCompress MP4MP4 to GIFVideo to GIFVideo ConverterMP4 ConverterVideo Cutter

Audio Tools

Audio CompressorCompress MP3Compress WAVAudio ConverterMP3 ConverterFLAC to MP3Audio Cutter

Document Tools

Compress PDFMerge Images to PDFSplit PDFPDF to JPGUnzip FilesRAR Extractor
© 2026 XConvert.com. All Rights Reserved.
About UsPrivacy PolicyTerms of ServiceContactHelp Us Grow