https://github.com/orchetect/swift-fcpxml
Read, write, and reason on FCPXML (Final Cut Pro XML) in Swift.
https://github.com/orchetect/swift-fcpxml
fcpxml final-cut-pro finalcut finalcutpro macos swift xml
Last synced: 2 months ago
JSON representation
Read, write, and reason on FCPXML (Final Cut Pro XML) in Swift.
- Host: GitHub
- URL: https://github.com/orchetect/swift-fcpxml
- Owner: orchetect
- License: mit
- Created: 2026-03-16T01:22:44.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-03-25T17:17:36.000Z (2 months ago)
- Last Synced: 2026-03-26T18:39:22.012Z (2 months ago)
- Topics: fcpxml, final-cut-pro, finalcut, finalcutpro, macos, swift, xml
- Language: Swift
- Homepage:
- Size: 269 KB
- Stars: 1
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# swift-fcpxml
[](https://swiftpackageindex.com/orchetect/swift-fcpxml) [](https://swiftpackageindex.com/orchetect/swift-fcpxml) [](https://github.com/orchetect/swift-fcpxml/blob/main/LICENSE)
A Swift library for efficient parsing and extracting timeline events from FCPXML (Final Cut Pro XML) files, with limited authoring support.
The library is concerned with two main areas:
1. Reading and authoring the FCPXML format using a fast and lightweight data model that wraps the XML objects
2. Reasoning on FCPXML data and extracting information such as timeline events
> [!NOTE]
>
> The library is currently only available on macOS, which is a limitation of Apple's `XMLDocument` API. In future, this could be refactored to use FoundationXML in the Swift 6.x toolchain.
> [!IMPORTANT]
>
> The evolution of this library is ongoing, and as such some features may be missing or incomplete. See the [Roadmap](#Roadmap) section below.
## 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:
```swift
.package(url: "https://github.com/orchetect/swift-fcpxml", from: "0.1.0")
```
Then add it to your target dependencies:
```swift
.product(name: "SwiftFCPXML", package: "swift-fcpxml")
```
## Dependencies
- [swift-timecode](https://github.com/orchetect/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](https://github.com/orchetect/swift-fcpxml/blob/master/LICENSE) for more details.
## Author
Coded by a bunch of 🐹 hamsters in a trenchcoat that calls itself [@orchetect](https://github.com/orchetect).
## License
Licensed under the MIT license. See [LICENSE](https://github.com/orchetect/swift-fcpxml/blob/master/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](https://github.com/orchetect/swift-fcpxml/discussions).
- If an issue is a verifiable bug with reproducible steps it may be posted in [Issues](https://github.com/orchetect/swift-fcpxml/issues).
## Contributions
Contributions are welcome. Posting in [Discussions](https://github.com/orchetect/swift-fcpxml/discussions) first prior to new submitting PRs for features or modifications is encouraged.
## Legacy
This repository was formerly a part of [swift-daw-file-tools](https://github.com/orchetect/swift-daw-file-tools) (previously known as DAWFileKit), and was extracted into its own repository in March 2026.