Skip to content
CutConvert

What is FCPXML? Final Cut Pro's interchange format, explained

By Greg Thompson, Founder, CutConvertPublished

FCPXML is Final Cut Pro's XML-based interchange format — the file that carries a timeline's structure (clips, edits, timing, titles, captions, metadata) between Final Cut Pro and other applications. Despite the similar name, it is not the same thing as the older "Final Cut Pro 7 XML" that Premiere Pro and DaVinci Resolve trade in: the two formats are incompatible, and knowing which one a tool means by "XML" saves hours of confused imports. This guide explains the format, the version system, what actually lives inside one, and how to get subtitles into and out of an FCPXML without opening Final Cut.

FCPXML vs. FCP7 XML: the naming trap

Two different formats share the "Final Cut XML" name:

  • FCP7 XML (xmeml, .xml) — the format of 2009-era Final Cut Pro 7. Its namesake app is dead, but the format survived as the industry's default timeline interchange: Premiere exports it, Resolve imports it, conform tools speak it.
  • FCPXML (.fcpxml, or an .fcpxmld bundle in newer versions) — the format of today's Final Cut Pro, redesigned from scratch. Structurally unrelated: resources, a spine of clips, rational-number timing.

The rule of thumb: Premiere and Resolve interchange = FCP7 XML; anything touching modern Final Cut Pro = FCPXML. A tool that says it wants "XML" without specifying is usually FCP7 XML; Final Cut Pro itself only reads FCPXML.

What's inside an FCPXML

Per Apple's FCPXML reference, the document has three big parts:

  • Resources — every asset, format definition, and effect the timeline references, each with an id.
  • The library/event/project hierarchy — mirroring FCP's own organization.
  • The spine — the timeline itself: clips, connected clips (including titles and captions), transitions, and their offsets and durations.

Two details bite people who process FCPXML by hand:

  1. Timing is rational, not decimal. A frame at 23.976 fps is written as 1001/24000s — exact fractions, never floats. Naive parsers that round to milliseconds drift.
  2. Offsets are relative to containers, and timelines usually start at an hour. A title's offset is measured inside its parent clip, and the sequence has its own start time — which is why quick-and-dirty subtitle extractors land everything 3600 seconds late. (The FCPXML to SRT converter resolves the whole offset chain.)

Versions

FCPXML is versioned (the current release is 1.13), and each Final Cut Pro release typically bumps it. Version matters in one direction: an app that reads FCPXML 1.13 will usually accept older files, but Final Cut Pro will refuse an FCPXML claiming a version newer than it understands. When generating FCPXML for maximum compatibility, targeting a somewhat older version is the pragmatic choice — CutConvert's SRT to FCPXML converter writes DTD-validated FCPXML that current Final Cut Pro and DaVinci Resolve versions import cleanly.

Who reads and writes FCPXML

  • Final Cut Pro — its native interchange in both directions (File > Import > XML, File > Export XML).
  • DaVinci Resolve — imports and exports FCPXML alongside FCP7 XML, making it the bridge between the two ecosystems.
  • Logic Pro, audio and captioning tools — many accept FCPXML for timing.
  • Workflow tools and converters — because FCPXML is documented and text-based, it's the practical way to inject generated content (like subtitle titles) into an FCP timeline programmatically.

The workflows FCPXML makes possible

  • SRT → editable titles: convert subtitles to an FCPXML of Basic Titles (SRT to FCPXML), import, and every cue is a styleable title — the standard answer to "how do I get designed subtitles into FCP." Full walkthrough: import SRT into Final Cut Pro.
  • Titles → SRT: export a timeline as FCPXML and extract every title/caption with exact timing (FCPXML to SRT) — the only route out when subtitles were built as titles.
  • FCP ↔ Resolve roundtrips: cut in one, grade or deliver in the other, with FCPXML carrying the timeline.

FAQ

What is an FCPXML file? The XML interchange format of modern Final Cut Pro: a text document describing a timeline's clips, timing, titles, captions, and metadata, used to move projects between FCP and other applications. Current version 1.13; documented by Apple.

Is FCPXML the same as Final Cut Pro 7 XML? No — they're incompatible formats that share a name. FCP7 XML (.xml) is the older format Premiere and Resolve exchange; FCPXML (.fcpxml) is today's Final Cut Pro format. Converting between them requires a dedicated tool, not a rename.

How do I open an FCPXML file? Final Cut Pro (File > Import > XML) or DaVinci Resolve (File > Import > Timeline) for editing; any text editor to inspect it — it's plain XML. To pull the subtitles out without an NLE, the FCPXML to SRT converter reads titles and captions directly.

Why are timestamps written like 1001/24000s? FCPXML expresses time as exact rational numbers so nothing is lost to rounding at NTSC rates like 23.976 and 29.97 fps. Tools that convert those fractions to millisecond floats introduce drift; correct converters do the math in rationals.

Which FCPXML version should I export? For hand-offs to unknown tools, older is safer — apps accept files at or below the version they understand, and refuse newer ones. Final Cut Pro can update older files on import.

Can Premiere Pro open FCPXML? Not natively — Premiere speaks FCP7 XML. Going from FCPXML to Premiere means passing through a converter or through Resolve (import FCPXML, export FCP7 XML).

Greg Thompson · Founder, CutConvert

Greg builds CutConvert, the post-production file converter — including the first working decoder for Premiere Pro’s binary .prtranscript format. He writes these guides from the format specs and real editor workflows.

↑ Back to top