Skip to main content
LrcSong
TTML validator

Validate TTML before you ship

Strict TTML validator catches malformed timestamps, encoding glitches, and spec violations before your file lands at a fussy player or distribution platform.

Input

TTML file

Drop, paste, or pick

Output

Pass / fail report

Errors with line numbers

Free · in your browserStrict spec complianceAuto-detects format
  • Runs 100% in your browser — nothing uploads
Paste or drop your TTML file to validate

See it in action

TTML validator report

What you put in what you get back

TTML input (with intentional errors)

What you provide

<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml">
  <body>
    <div>
      <p begin="00:00:12.340" end="00:00:15.780">Hello, it's me</p>
      <p begin="00:00:15.780" end="00:00:19.200">I was wondering if after all</p>
      <p begin="00:00:19.200" end="00:00:22.840">these years you'd like to meet</p>
    </div>
  </body>
</tt>

Validation report

What you receive

✓ Valid TTML

Format    : TTML
Cues      : 3
Encoding  : UTF-8
Timestamps: monotonic ✓
Required fields: present ✓

Ready to ship.

Step-by-step guide

How to use this tool

  1. 01

    Drop or paste TTML

    Either input works — drag in a file, paste from clipboard, or type directly.

  2. 02

    Strict parser runs

    We check every timestamp, encoding, and required field against the spec.

  3. 03

    Read the error report

    If valid, you get a green check. If not, we list each error with line numbers — no guesswork.

Key features

Why use this tool

Spec-strict parser

We follow the TTML reference grammar — any deviation is flagged.

Helpful error messages

Each error names the line number and what's wrong, not just 'parse failure on line 42'.

Privacy-first

Validation runs in your browser. Use it on unreleased subtitles without leaking them anywhere.

Format mismatch detection

Pasted SRT into the TTML validator? We'll suggest switching to the right one before you waste time debugging.

Common use cases

Who this tool is for

Pre-delivery QA

Catch broken subtitles before sending to a client or platform that will reject the whole batch.

Player crash debugging

When a player rejects a file with a generic error, validate here to find the actual offending line.

Mass-cleanup

Identify which files in a folder need fixing — drop each one in for a fast pass/fail.

Questions answered

Frequently asked questions

We check timestamp ordering, required fields, allowed character sets, and structural integrity per the TTML reference grammar. We don't validate semantic content (e.g. spelling).

Found errors? Fix them in seconds

Convert, repair, or re-time using one of our other tools.

We use cookies for auth and, optionally, privacy-friendly analytics. You can accept, decline, or read our privacy policy.

Install LrcSong
Add to your home screen for offline tools and faster startup.