Skip to content
Novus Examples
dfxp1 KB

DFXP — TTML Under Its Other Extension

Timed text as DFXP — byte-for-byte a TTML document, just under the extension Netflix, Adobe and older captioning tool-chains still use. Same tt root, same head/body/div/p structure, same styling and region attributes. It exists to check that a caption parser dispatches on document content rather than on the file extension: a parser that accepts .ttml but rejects an identical .dfxp is exactly the bug this catches.

Preview — first 22 linesdfxp
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling" xml:lang="en">
  <head>
    <styling>
      <style xml:id="base" tts:fontFamily="sansSerif" tts:fontSize="80%" tts:color="white"
             tts:backgroundColor="black" tts:textAlign="center"/>
    </styling>
    <layout>
      <region xml:id="bottom" tts:origin="10% 75%" tts:extent="80% 20%" tts:displayAlign="after"/>
    </layout>
  </head>
  <body region="bottom" style="base">
    <div>
      <p begin="00:00:01.000" end="00:00:03.000">Novus Examples — timed-text fixture</p>
      <p begin="00:00:03.500" end="00:00:06.000">Second cue, two lines:<br/>this is the second line</p>
      <p begin="00:00:06.500" end="00:00:09.000">Third cue with <span tts:fontStyle='italic'>italic</span> markup</p>
      <p begin="00:00:09.500" end="00:00:12.000">Fourth cue — em dash, curly “quotes”, ellipsis…</p>
      <p begin="00:00:12.500" end="00:00:15.000">Final cue.</p>
    </div>
  </body>
</tt>

Specifications

Grammar
W3C TTML 1
Extension
.dfxp
Styling
tts:fontStyle, region layout
Cues
5
Language
en
Regions
1

What is a .dfxp file?

DFXP (Distribution Format Exchange Profile, .dfxp) is the original name for what became TTML, and the extension is still in wide use — notably by Netflix, Adobe, and older captioning tool-chains. The bytes are TTML: the same tt root element, the same head/body/div/p structure, the same timing and region attributes. The extension signals provenance, not a different grammar.

How to use this file

Use an example .dfxp file to check that a caption parser dispatches on document content rather than on the file extension. A parser that accepts .ttml but rejects a byte-identical .dfxp is exactly the bug this file exists to catch.

How to use this file for testing

“DFXP — TTML Under Its Other Extension” is a deterministic Novus Examples fixture for Subtitle parsing, Conversion testing, Video QA. The same captions across SubRip, WebVTT, ASS/SSA, SBV, and TTML, plus a synced LRC lyric file — for testing subtitle parsers, players, burn-in tools, and format converters against known timings.

Documented properties for this file: 5 cues · en. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

Media fixtures are short and synthetic by design. Prefer waveform or transcript ground truth in the same group when measuring ASR, trim, upscale, or sync tools; do not assume broadcast-quality masters.

Parse the cues and check timings against the documented count; the same captions ship across subtitle formats so you can diff a converter against a known target.

Code examples

<video controls src="clip.mp4">
  <track kind="captions" srclang="en" label="English" src="captions.dfxp" default>
</video>

Generated by generation/video_timedtext.py. Free for any use, no attribution required — license.