Transmogrifier is a tool developed at the 318 labs to extend the functionality of Final Cut Server.
Announcements
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
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 line access to Data retrieval and manipulation
Transmogrifier provides a command-line interface which allows access to Final Cut Server assets and productions, allowing for both the retrieval, as well as the modification of Final Cut Server metadata. This command line interface also provides access to production membership modification, archival and restoration triggers, thumbnail, posterframe, and proxy queries. It also allows programatic access to assets based upon their file system path, asset id, or title.
Media Delivery
Transmogrifier can facilitate the delivery of assets to various media publishing platforms, including YouTube, BrightCove, and The Platform
Archival Integration
Transmogrifier provides archive integration capabilites via the fcsArchiver module. This module currently has support for integration with Archiware's PresStore backup software, allowing for a seamless D2D2T end-user driven workflow. fcsArchiver also provides access to the fcsDiskArchiver module, which allows for the intelligent spanning of data across multiple archive disks.
Qmaster facilities
Transmogrifier's Qmaster module provides a Python API for interfacing with Apple's Qmaster distributed transcode engine.
Command Syntax
The primary interface to the FCS Transmogrifier framework is provided via the executable file 'transmogrifier.py', 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:
transmogrifier.py [options] [target]
transmogrifier.py [-f configfile] [-d supportdir] [-a action] [-t mediatitle]
Working with assets:
transmogrifier.py --setField="Keywords" --value="MyAsset" -t MyAsset
transmogrifier.py --setField="Keywords" --value="MyAsset" -i /fcsxmlinfile.xml
transmogrifier.py --appendField="Status" --value="Update!" -i /fcsxmlinfile.xml
transmogrifier.py --getAssetID --assetPath="/FCS/Media/myfile.mpg"
transmogrifier.py --getEntityPath --assetID=1
transmogrifier.py --getFilePath --assetID=1
transmogrifier.py --getArchiveFilePath --assetID=1
transmogrifier.py --getThumbnailPath --assetID=1
transmogrifier.py --getProxyPath --assetID=1
transmogrifier.py --getPosterFramePath --assetID=1
transmogrifier.py --archive --assetID=1
transmogrifier.py --restore --assetID=1
transmogrifier.py --analyze --assetID=1
Working with productions:
transmogrifier.py --setField="Owner" --value="Calvin" --assetsWithProductionID=1
transmogrifier.py --restore --productionID=1
transmogrifier.py --buildProduction --productionID=1
Working with devices:
transmogrifier.py --getDeviceName --deviceID=1
transmogrifier.py --getDeviceName --devicePath="/FCS/Media"
transmogrifier.py --getDevicePath --deviceName="Media"
transmogrifier.py --getDevicePath --deviceID=1
transmogrifier.py --getDeviceID --deviceName="Media"
transmogrifier.py --getDeviceID --devicePath="/FCS/Media"
Working with Modules:
transmogrifier.py --module=BrightCove -t MyAsset [-a action]
transmogrifier.py --module=BrightCove -a preflightCheck|upload -t MyAsset
transmogrifier.py -a createSupportFolders [-m BrightCove] [-d supportdir]
transmogrifier.py --module=BrightCove -a listFCSFields
Options:
-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
operations
--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)
Targets:
-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.