orchetect/swift-fcpxml
A Swift library for efficient parsing and extracting timeline events from FCPXML (Final Cut Pro XML) files, with limited authoring support.
Roadmap
The evolution of this library is ongoing, and features may be added on an as-needed basis.
This library grew out of the more focused need to parse timeline events and has gradually gained more ground in modeling the XML. Currently a substantial amount of the FCPXML DTD is modeled and traversable, but is not entirely complete - some of the more esoteric XML elements have not yet been modeled.
The model is more oriented toward reading, but limited authoring support is available and the library has been built with wider authoring support potentially being added in future in mind.
The core feature-set does allow for comprehensive reasoning on the XML in order to extract timeline events such as markers, and is being used actively in production.
Installation
Swift Package Manager (SPM)
To add this package to an Xcode app project, use:
https://github.com/orchetect/swift-fcpxml as the URL.
To add this package to a Swift package, add it to your package dependencies:
.package(url: "https://github.com/orchetect/swift-fcpxml", from: "0.1.0")Then add it to your target dependencies:
.product(name: "SwiftFCPXML", package: "swift-fcpxml")Dependencies
- swift-timecode to represent timecode values and frame rates
Documentation
No formal documentation yet.
Unit Tests
Core unit tests implemented. More exhaustive tests can be added in future.
Affiliation
The author(s) have no affiliation with Apple or Final Cut Pro. This library is built based on open file data format has been made publicly available by Apple. No reverse-engineering of software was involved in implementation of this library. The goal is to promote easier interoperability for developers.
The library is provided as-is with no warranties. See the LICENSE for more details.
License
Licensed under the MIT license. See LICENSE for details.
Community & Support
Please do not email maintainers for technical support. Several options are available for issues and questions:
- Questions and feature ideas can be posted to Discussions.
- If an issue is a verifiable bug with reproducible steps it may be posted in Issues.
Contributions
Contributions are welcome. Posting in Discussions first prior to new submitting PRs for features or modifications is encouraged.
Code Quality & AI Contribution Policy
In an effort to maintain a consistent level of code quality and safety, this repository was built by hand and is maintained without the use of AI code generation.
AI-assisted contributions are welcome, but must remain modest in scope, maintain the same degree of quality and care, and be thoroughly vetted before acceptance.
Legacy
This repository was formerly a part of swift-daw-file-tools (previously known as DAWFileKit), and was extracted into its own repository in March 2026.
Package Metadata
Repository: orchetect/swift-fcpxml
Default branch: main
README: README.md