So I've spent epic amount of time filling out metadata for clips from 3 different cameras over 3 days. This has been great for organising the footage within the FCPX project that I'm working on.
Come time to color grade and I'd like to bring the XML into Resolve for grading and to my horror, all the metadata fields are empty again!
If e.g I fill out metadata for audio files in iTunes, it's stored in the files and now Logic and FCPX will see it which is expected behaviour and one of the reasons metadata exists in the first place.
Could it be true that FCPX would be naive enough to save the metadata in the FCPX project or Library so that it's only visible to itself?
There is often no universal standard when dealing with metadata of any type, not just FCPX. Even with basic camera video files, the metadata in the header is not standardized and often undocumented. That is why you can't examine EXIF data from video files with the same detail and reliability as from still photos. Utilities like Invisor and EXIFTool do this by reverse-engineering, not because the camera mfg documented this.
With audio files it's a little more standardized but even there we have competing standards of ID3 and APE tags. Just because you see two audio apps that can read the same ID3 tags doesn't mean you can export a LightRoom image catalog containing thousands of photo ratings to to other photo organizers and they will all properly read and interpret all that metadata. The situation with FCPX is similar.
FCPX metadata is stored in SQL tables called ZCOLLECTION and ZCOLLECTIONMD within the CurrentVersion.fcpevent files inside the library. These are in SQLite on-disk format and can be viewed and edited with a 3rd-party database editor.
However there is little benefit to examining these because the database schema is undocumented. Unlike a traditional database app where a human programmer crafts the column names, field definitions, etc. and embeds the SQL queries in the app, FCPX's internal programmer-facing interface is an object-like "graph" database supported by Core Data. This is in turn translated to the SQLite persistent data store. There are many BLOB (Binary Large Object) fields which would require internal documentation to decode.
With FCPX the only externally-available method for exporting/importing metadata is XML. If Resolve is not interpreting some metadata, one possibility is FCPX didn't write that out or it's not in a documented format. The other possibility is Resolve did not properly decode that. In some cases there is no equivalent place in Resolve to put that metadata, even if it existed. E.g, if FCPX XML contained range-based favorites and rejects, where would Resolve put that since it does not support range-based operations?
There may be other areas where future versions of Resolve could better support XML from FCPX. If you see such places you can provide feedback right within the FCPX app by clicking Final Cut Pro>Provide Final Cut Pro Feedback.
However it's possible the needed metadata is already in the XML but Resolve is not interpreting it correctly or acting on it. For that you'd need to provide feedback to Blackmagic. One good way is get involved in the Resolve beta program and post this on their beta forum or other channels they provide beta testers.
In general the lesson is don’t spend epic amounts of time on a workflow that is not tested. Always assume it won’t work, test small elements and only if that works scale up to a bigger effort. This is especially when dealing with metadata interchange between two NLEs.
I have the same problem. The metadata is written to the XML fine, but resolve won't read it. I understand some things might be difficult to interpret between two non standardised applications but things like "<note>" should work, no?
I know this is an issue with resolve but just thought to ask maybe someone has figured it out?
Yes it appears metadata for video is a bit of an unstandardised mess. There are some tags written to the video files themselves. The Blackmagic cameras write these tags on creating the files it seems which both FCPX and Resolve can read, but editing the metadata from within FCPX does not affect these tags, but instead stores them internally. Some metadata is exported with the XML but it doesnt reflect these tags at all, only <note> and <keyword>.
I understand its hard to standardise things between manufacturers, but I'm sure we can all say things like 'reel', 'scene' and 'camera name' should be as common place as 'artist' and 'album' for video files.
I can't understand why these can't be read and written from the files themselves. It's 2019 after all, haven't we got somewhere by now?