{"id":18377234,"url":"https://github.com/bbc/fcpx-xml-composer","last_synced_at":"2025-04-06T21:31:26.286Z","repository":{"id":44113044,"uuid":"193881515","full_name":"bbc/fcpx-xml-composer","owner":"bbc","description":"Work in progress - Module to Convert a json sequence into an FCPX XML. For BBC News Labs digital paper edit project ","archived":false,"fork":false,"pushed_at":"2023-07-08T13:25:34.000Z","size":892,"stargazers_count":23,"open_issues_count":18,"forks_count":6,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-03-22T06:51:19.695Z","etag":null,"topics":["digital-paper-edit","edl","fcpx","fcpxml","final-cut","final-cut-pro","final-cut-pro-x","json","news-labs","newslabs","video-editing","xml"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bbc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-26T10:18:39.000Z","updated_at":"2025-03-13T09:46:08.000Z","dependencies_parsed_at":"2024-11-06T00:28:38.598Z","dependency_job_id":"81e61cf2-2409-49ee-b9e9-a26b92dfeaa9","html_url":"https://github.com/bbc/fcpx-xml-composer","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbc%2Ffcpx-xml-composer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbc%2Ffcpx-xml-composer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbc%2Ffcpx-xml-composer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbc%2Ffcpx-xml-composer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bbc","download_url":"https://codeload.github.com/bbc/fcpx-xml-composer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247555082,"owners_count":20957702,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["digital-paper-edit","edl","fcpx","fcpxml","final-cut","final-cut-pro","final-cut-pro-x","json","news-labs","newslabs","video-editing","xml"],"created_at":"2024-11-06T00:27:23.744Z","updated_at":"2025-04-06T21:31:25.930Z","avatar_url":"https://github.com/bbc.png","language":"JavaScript","readme":"# FCPX XML Composer\n\n_work in progress_\n\nConvert a [json sequence](./sample/input/example_sequence.json) into an FCPX XML.\n\nInspired by [EDL Composer](https://github.com/pietrop/edl_composer#readme) on [npm](https://www.npmjs.com/package/edl_composer) it uses the same schema to describe the sequence. \n\nPart of the [`bbc/digital-paper-edit`](https://github.com/bbc/digital-paper-edit) project by BBC News Labs\n\n\n## Setup\n\u003c!-- _stack - optional_\n_How to build and run the code/app_ --\u003e\n\ncd, clone the repo, `npm install`\n\n## Usage - development\n\nsee [`example-usage.js`](./example-usage.js) for how to requrie and use the module.\n\nTo run the example do `node example-usage.js`\n\n\nWhen importing the `.fcpxml` sequence in FCPX the media is going to be offline, to re-link the media go to `Files` `-\u003e` `Relink  Files` or see \n[see Re-link offline clips in FCPX, for more details](https://support.apple.com/kb/PH12701?locale=en_US).\n\n## Usage - production\n\n```\nnpm install @bbc/fcpx-xml-composer\n```\n\nrequire or import in your code and see example usage for more details\n\n\n## System Architecture\n\u003c!-- _High level overview of system architecture_ --\u003e\n\nA function that loop over the json sequence and using string interpolation creates an equivalent FCPX XML. With no dependencies.\n\nUsed the sequence form [the docs - `Listing 1-1  A library with a simple project as FCPXML`](https://developer.apple.com/library/archive/documentation/FinalCutProX/Reference/FinalCutProXXMLFormat/EventsandProjects/EventsandProjects.html) as a starting point.\n\nFCPX seems particularly picky about specifying the correct frame rate for the clips in the sequence.\n\n\u003eRelinked files must have the same media type, same frame rate, and similar audio channels as the original files, and must be long enough to cover all the clips that reference the files.\n\n[DTD errors FCPX reference](https://developer.apple.com/library/archive/documentation/FinalCutProX/Reference/FinalCutProXXMLFormat/FCPXMLDTD/FCPXMLDTD.html)\n\nA Known limitation is that the EDL composer sequence only supports one track, as the EDL format is not multi track. FCPX sequence could allow multiple tracks. But for the current use case with `digital-paper-edit` one track is sufficient. PRs might be considered to extend this module to multi track support.\n\n## Development env\n \u003c!-- _How to run the development environment_\n_Coding style convention ref optional, eg which linter to use_\n_Linting, github pre-push hook - optional_ --\u003e\n\n- [ ] npm \u003e `6.1.0`\n- [ ] node v 10 - [lts/dubnium](https://scotch.io/tutorials/whats-new-in-node-10-dubnium)\n\u003c!-- - [ ] see [`.eslintrc`](./.eslintrc) in the various packages for linting rules\nNode version is set in node version manager [`.nvmrc`](https://github.com/creationix/nvm#nvmrc) --\u003e\n\n## Build\n\u003c!-- _How to run build_ --\u003e\n\n_NA_\n\n## Tests\n\u003c!-- _How to carry out tests_ --\u003e\n\n_TBC_\n\n## Deployment\n\u003c!-- _How to deploy the code/app into test/staging/production_ --\u003e\n\n_TBC - published to npm under `@bbc/fcpx-xml-composer`_\n\n\n\n\u003c!-- Other\nhttps://www.npmjs.com/package/bmjs-fcpxml\n--\u003e\n\n\n## TODO:\n- [ ] Add support for optional `offset` (in a way supported by FCPX XML) \u003c!-- needs testing with footage from camcorder  --\u003e","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbc%2Ffcpx-xml-composer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbbc%2Ffcpx-xml-composer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbc%2Ffcpx-xml-composer/lists"}