Final Cut Pro XML to Shake (fcp2shk)
last updated 2/25/05


Hello World.
I am making this script available precompiled as a pre-release.
This means that it has not been fully tested in all scenerios, but it works under specific conditions,
and it does not contain all of the features the final version will have.
When it is finally released, the source code will be made available as well (maybe).
Below is a quick how-to with a list of the single tested condition.

Download and expand the precompiled python script fcp2shk.pyc compiled with Python 2.3 (#1, Sep 13 2003, 00:49:11) [GCC 3.3 20030304 (Apple Computer, Inc. build 1495)] on darwin




What is this script for?
Converting a Final Cut Pro XML file to a Shake script.
This can be the final step once a project has been edited and production quality effects need to be added.

* Input is a Final Cut Pro XML file
* Output is a Shake script where nodes are grouped by reel and sorted in shot order. Select nodes facilitate the traversal of the resultant tree.
* also Output is a cut list showing clip in and out points, and where the clip starts and ends in the track, also the filename of the referenced clip. this cut list will allow users to swap in hires frame sequences procedureally if desired, this does not function yet.


How did it come about?
I've been editing in Final Cut Pro for over a year now. I have been editing a music video that I have directed and was trying to decide how I would do the final effects. Up until now I really had only been editing my demo reel, and finishing on dvd without much manipulation to the image. On this project I wanted to manipulate it so much that I didn't feel I would get the best performance out of Final Cut Pro for doing what I wanted to do. Here is a short list of what I had planned to do to my music video: stabilize, rotate, flip/flop, color correct, reframe, sharpen, motion blur, and matte to 1.78. What is there to do a Digitial Intermediate with on a Mac made by Apple? Shake!


How do I use this script?
A couple of things need to be done before we get to that.
1) Make sure all of the reel data is filled in and correct for your clips.
2) Make sure you don't have nested clips in your sequence.
3) Make sure you only have one video track and nothing in your audio tracks.

Why? This is how far along this script is... if you want it to handle more complex projects, I'll need some example Final Cut Pro XML files.

Email your examples and comments here after you've tried this. zcole at nzaneproductions dot com



Enough with the prep! Lets do it already!
1) Select your sequence and select "File->Export->XML..."



2) Select "Apple XML Interchange Format, version 1" (that is the only thing in my selection dialog)



3) Download and expand the precompiled python script fcp2shk.pyc compiled with Python 2.3 (#1, Sep 13 2003, 00:49:11) [GCC 3.3 20030304 (Apple Computer, Inc. build 1495)] on darwin

4) Open a Terminal or X11 shell

5) Make a temp directory to do your work in (merely a suggestion), I'm going to use ~/Desktop/work for my example

6) Go to that directory, and run fcp2shk.pyc with this usage:

python fcp2shk.pyc fcpoutput.xml shakefile.1.shk cutlist.txt



7) The result is a Shake file with absolute paths to your clip footage (my tests are only with dv quicktime movies) and a cutlist showing the data that was extracted from the xml file. I will eventually make it so that the cutlist could be edited/corrected and then reread in instead of parsing an xml file.

Here is an example of the output from my music video. The top view is the entire tree, and the bottom view is a closeup of the far right branch. (I had to move the nodes around to make it look purty!) Please remember that this is only a starting point. The motion, time effects, and filters have not been translated into this Shake script, only the clips with their in and out points set appropriately.




Here is some more detailed information about the script. Click Here.


What now?

Well, I've got this script to the point where I need it. But I need you to test it for your needs. Give it a go and let me know what you think. If you have a crazy fcp project and want to get it working with this script, send me an email and attach the xml file and i'll take a look when i get a chance. If you choose to donate some money via paypal, that might encourage me to work on this more, but its not required!

Email your examples and comments here after you've tried this. zcole at nzaneproductions dot com

Download and expand the precompiled python script fcp2shk.pyc compiled with Python 2.3 (#1, Sep 13 2003, 00:49:11) [GCC 3.3 20030304 (Apple Computer, Inc. build 1495)] on darwin



Go Back to the software page.