Skip to content

VTT to TTML Subtitle Converter

Fast. Private. Perfect.

100% local processing in your browser. No upload. No waiting.

Private & Secure
Blazing Fast
Free & Private
VTT
WEBVTT
 
00:00:01.000 --> 00:00:04.000
Hello, world!
 
00:00:04.500 --> 00:00:08.000
This is a subtitle file.
 
00:00:08.500 --> 00:00:12.000
Converted locally!
TTML
<?xml version="1.0" encoding="UTF-8"?>
<tt xml:lang="en" xmlns="http://www.w3.org/ns/ttml">
<body>
<div>
<p begin="1.000s" end="4.000s">Hello, world!</p>
<p begin="4.500s" end="8.000s">This is a subtitle file.</p>
<p begin="8.500s" end="12.000s">Converted locally!</p>
</div>
</body>
</tt>

Drag & drop your VTT file here

or click to browse

Supports .vtt files up to 50 MB

100% LocalNo UploadSecureInstant

How It Works

1

Upload VTT File

Drag & drop or select your .vtt file

2

Convert Instantly

We process it locally in your browser

3

Download TTML

Get your .ttml file immediately

More Conversions You Might Need

Why Choose AllSubConverter?

Your Privacy Matters

Everything runs in your browser. Your files are never uploaded.

Lightning Fast

Optimized processing engine converts files in seconds.

Free & Local

Each file can be up to 50 MB. Batches can contain up to 200 files or 1 GB total.

Works Everywhere

Works on Windows, Mac, Linux, iOS, Android - any modern browser.

About VTT to TTML

This browser-based converter reads timestamped WebVTT cue blocks and writes a basic UTF-8 TTML document. Cue start and end times become second-based begin and end attributes, physical line breaks become <br/> elements, and XML special characters are escaped. VTT cue identifiers, settings, regions, comments, and styling are not mapped to TTML presentation metadata.

Input Format

VTT

VTT (WebVTT) is a text subtitle format for web video. A VTT file starts with a WEBVTT header and uses HH:MM:SS.mmm --> HH:MM:SS.mmm cue timing. It can also contain cue identifiers, cue settings, inline tags, NOTE blocks, regions, and style metadata.

Output Format

TTML

TTML (Timed Text Markup Language) is a W3C XML subtitle format. This converter generates a basic UTF-8 document with a default TTML namespace, xml:lang="en", body and div elements, and one <p> element per cue with second-based begin and end attributes.

Features

Reads timestamped WebVTT cue blocks directly in your browser
Writes a basic UTF-8 TTML XML document
Converts timing to second-based begin and end attributes
Converts cue line breaks to <br/> elements
Escapes ampersands and angle brackets in text nodes
Processes files up to 50 MB without uploading them

Why Convert?

TTML stores cues as structured XML rather than WebVTT text blocks.
Some streaming, broadcast, and localization tools accept TTML input.
A basic TTML draft can be extended with profile metadata in an XML editor.
XML tools can validate and transform the timed text.
Converting locally avoids uploading program material or caption text.
Keeping VTT and TTML copies supports different delivery environments.

Format Differences

VTT starts with a WEBVTT header; this TTML output starts with an XML declaration and <tt> root.
VTT uses HH:MM:SS.mmm cue timing; this output uses second-based begin and end attributes.
VTT cue settings and regions are discarded rather than mapped to TTML layout metadata.
VTT inline tags are escaped as literal text rather than becoming TTML spans.
VTT comments and identifiers are not carried over.
The output contains a basic TTML body without styling or profile metadata.

Common Use Cases

Basic TTML Draft

Create a basic TTML document from web subtitles before checking it against a target profile or workflow.

XML Interchange

Move timestamped VTT cues into a tool that accepts TTML XML input.

Text Editing

Use XML-aware tools to inspect or edit cue timing and text.

Local Conversion

Convert subtitles without uploading them to a separate conversion service.

Web and TTML Copies

Keep a VTT version for web playback while producing a basic TTML copy for another workflow.

Related Formats

Frequently Asked Questions

No. VTT cue settings, regions, CSS, and inline styling tags are not mapped to TTML styling or layout attributes. Tags inside cue text are escaped and remain literal text.

Voice tags are not converted to TTML spans. Their angle brackets are escaped, so the source markup appears as literal text in the generated <p> element.

No. The generated TTML contains the XML declaration, default namespace, xml:lang="en", body, div, and timed <p> elements. It does not include head, styling, region, IMSC, ITV, or EBU-TT-D metadata.

Each cue start and end is written as a three-decimal second value, such as begin="1.500s" and end="4.000s".

No. NOTE blocks do not contain displayable cue text for this converter and are ignored.

Not by itself. Platform profiles often require additional namespaces, metadata, styling constraints, and validation. Use this basic TTML as a starting point only and check the recipient specification.

Ready to convert your subtitles?

Drop your VTT file here and convert to TTML instantly.