So, this is a little more geeky than is normal even for this blog, but I ran the Unix ‘strings’ command on the Final Cut Pro X binary. This command tries to extract things that look like bits of human-readable text out of binary files. Used on Cocoa apps like FCP X, it can often turn up the names of internal methods, classes, etc. Here are some of the more interesting strings it found:
PEXMLImport PEXMLImportButton importXML: importFinalCutXML importXMLViaAppleScript: scriptingExportListAsXML: /System/Library/Frameworks/Python.framework/Python Py_IsInitialized Py_Initialize Py_SetProgramName PyRun_SimpleFileExFlags /usr/bin/python FCPythonPluginExecutor sharedManager loadPythonScriptAtPath:runFunction:withArguments: setupPythonEnvironment PEPythonPluginManager loadPythonModuleAtPath:functionName:arguments:
This suggests partial or stub implementations of XML import and Python scripting features are already present. As far as the XML import goes, my guess is FCP X was supposed to ship with XML import, and this was the solution for bringing in FCP 7 projects… but it wasn’t done in time and they decided to ship anyway.
Notice that there’s no XML exporting, however. (Except maybe clip lists?) What’s the deal with that? Well, Python might actually explain that. Normally if I saw references to Python like this in an app, I’d assume it was merely being used internally by the app, but here it appears along with references to plug-ins. My guess is that the plan is to allow third-parties to write Python scripts that hook directly into FCP X. This could, if implemented the right way, be far more powerful than simple XML exporting, because it could give third-party tools access to FCP X’s functionality, not just to static project data.
We’ll have to wait and see what comes of this, but these indicators do look promising.