Transmogrifier is a tool developed at the 318 labs to extend the functionality of Final Cut Server.


Transmogrifier 1.0beta is now available! Transmogrifier 1.0 adds a number of new features:

New metadata manipulation routines
- Transmogrifier 1.0 includes many new capabilities for manipulating metadata. Please refer to the Transmogrifier CLI Documentation for more information.
New Interfaces for Manipulating Final Cut Server Productions
- Transmogrifier 1.0 several new tools and many new capabilities for working with Final Cut Server Productions. Please refer to the productionBuilder and productionHandler as well as the Transmogrifier CLI Documentation for more information.
New Archival Integration Capabilities
- Transmogrifier 1.0b introduces the fcsArchiver module, which includes full integration support with Archiware PresStore
API support for Apple's Qmaster distributed rendering system
- Transmogrifier 1.0b introduces a new Python module, qmaster, enabling Python access to Qmaster job submission

Read Older Announcements

Final Cut Server Transmogrifier

Transmogrifier is a Python framework and Command Line program created to provide programatic access to Apple's Final Cut Server digital asset management system.

It provides a number of facilities for interacting with Final Cut Server:

Command Syntax

The primary interface to the FCS Transmogrifier framework is provided via the executable file '', typically installed at /usr/local/bin. Here is the usage output for this file:

FCS transmogrifier
Version: 1.0b Build: 2011042001
Framework Version: 1.0b Build: 2011042001

Copyright (C) 2009-2011 Beau Hunter, 318 Inc.

Usage: [options] [target] [-f configfile] [-d supportdir] [-a action] [-t mediatitle]

Working with assets: --setField="Keywords" --value="MyAsset" -t MyAsset --setField="Keywords" --value="MyAsset" -i /fcsxmlinfile.xml --appendField="Status" --value="Update!" -i /fcsxmlinfile.xml --getAssetID --assetPath="/FCS/Media/myfile.mpg" --getEntityPath --assetID=1 --getFilePath --assetID=1 --getArchiveFilePath --assetID=1 --getThumbnailPath --assetID=1 --getProxyPath --assetID=1 --getPosterFramePath --assetID=1 --archive --assetID=1 --restore --assetID=1 --analyze --assetID=1

Working with productions: --setField="Owner" --value="Calvin" --assetsWithProductionID=1 --restore --productionID=1 --buildProduction --productionID=1

Working with devices: --getDeviceName --deviceID=1 --getDeviceName --devicePath="/FCS/Media" --getDevicePath --deviceName="Media" --getDevicePath --deviceID=1 --getDeviceID --deviceName="Media" --getDeviceID --devicePath="/FCS/Media"

Working with Modules: --module=BrightCove -t MyAsset [-a action] --module=BrightCove -a preflightCheck|upload -t MyAsset -a createSupportFolders [-m BrightCove] [-d supportdir] --module=BrightCove -a listFCSFields

-h, --help Displays this help message
-v, --version Display version number
-f configfilepath Use specified config file
-d supportdir Path to support folder
--debug Run in debug mode

--xmlout= Specify a FCS XML file to write out.

-m,--module=MODULE Delivery Target: 'BrightCove', 'YouTube',etc..
-a action Perform the requested action.

--fcsvr_client Utilise fcsvr_client for FCS I/O operations
This defaults to yes by default on certain operations

--nofcsvr_client Under no circumstances utilize fcsvr_client for

--getField=FIELD Method to retrieve the value of FIELD
--getDBField=FIELD Method to retriev the value of FIELD using the
Final Cut Server database field name.
--setField=FIELD Method to specify FIELD to set with --value
--appendField=FIELD Append the specified field FIELD with --value
--value=value Data to append to set or import to --field
--withtimestamp Prepends a time stamp to STRING
--notimestamp Omits timestamp, if specified in config file

--getAssetID Outputs the assetID for specified target asset
--getAssetPath Outputs the asset's filesystem path
--getEntityPath Outputs the FCS address for specified target asset
--getEntityMetadataSet Outputs the metadata set associated with entity
--getProxyPath Outputs the asset's proxy path
--getEditProxyPath Outputs the asset's edit proxy path
--getThumbnailPath Outputs the asset's thumbnail path
--getPosterFramePath Outputs the asset's posterframe path

--getDeviceName Outputs the deviceName for specified target
--getDevicePath Outputs the device path for specified target
--getDeviceID Outputs the device id for the specified target

--getProductionTitle Outputs the production name of the specified target
--getProductionID Outputs the production id of the specified target
--addToProduction Adds the specified asset to the specified production

--archive Archive the specified target
--restore Restore the specified target

--filterMDSet=mdset Filters targets to only those with the provided
metadaset (experimental)

-t title,--title= Title of the XML file to read in, useful when
using WriteXML response in FCS.
Utilizes paths set in transmogrifier.conf
--xmlin="/myfile.xml" Specify a FCS XML file to read in. Overwrites -t
--assetID=1 Asset with ID 1
--assetPath="/myfile" Asset residing at "/myfile"
--assetTitle="title" Asset with title "title"
--productionID=1 Production with ID 1
--productionTitle='title' Production with title 'title'
--productionTitleLike='title' Production with title matching substring 'title'
--assetsFromProductionID=1 All assets from the specified production.
--assetsFromProjectID= All assets linked from the provided FCP project file
--deviceID=1 Device with ID 1
--deviceName="Media" Device with name "Media"

Return Codes:
0 Clean Execution
1 Syntax Error
2 Syntax Error: parameter missing
3 One or more operations reported an error
4 Invalid target
5 Ambiguous/Conflicting Target
6 Invalid Action
7 fcsvr_client unavailable
8 Error reading from source (bad XML, fcsvr_client error)
9 Target(s) is(are) offline
99 Unknown Error

For more information about using Transmogrifier, please refer to the official documentation found here.