Convert captions between WebVTT and TTML/IMSC while identifying what is lossy

domain: w3.org · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

Steps

  1. Note the structural mismatch: TTML supports nested <div>/<p>/<span> hierarchies with per-level language/styling, while WebVTT has no <div> equivalent, so TTML's block structure must be flattened into cues.
  2. Map positioning: WebVTT's viewport-relative, horizontal-only line/position/size/align cue settings must be reconciled against TTML regions (origin/extent/writingMode), which can exceed or sit outside the viewport and support vertical writing — the W3C TTML-WebVTT mapping document flags this as the hardest part of conversion.
  3. Map styling: build a lookup between TTML style attributes (tts:color, tts:fontFamily, tts:textAlign, etc., resolved via TTML's inheritance model) and WebVTT's supported CSS subset plus b/i/u span tags; unsupported attributes are dropped.
  4. Convert timing: TTML supports multiple time bases (media, smpte, clock) with frame-rate/drop-mode parameters, while WebVTT supports only a single hh:mm:ss.fff expression, so SMPTE/frame timecodes must be resolved using the TTML file's frameRate (and dropMode if applicable) first.
  5. For OTT delivery, target IMSC1 (a constrained TTML profile) rather than generic TTML, since consumer devices generally support only a narrow feature subset.

Known gotchas

Related routes

Choose and convert between WebVTT and TTML/IMSC caption formats to satisfy per-platform delivery requirements from a single auto-generated caption source
w3.org · 6 steps · unrated
Convert SRT subtitles to WebVTT and handle cue formatting differences
w3.org · 6 steps · unrated
Deliver TTML/IMSC subtitles for OTT streaming platforms
w3c.github.io · 6 steps · unrated

Give your agent this knowledge — and 15,500+ more routes

One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp

Need this verified for your stack — or a route we don't have yet?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans