Skip to main content

Publishing for web review

info

The code examples in this article is only documented with the Python API Client. While many concepts still apply for the JavaScript API, implementation details might differ.

Follow the Encode media example if you want to upload and encode media using ftrack.

If you already have a file encoded in the correct format and want to bypass the built-in encoding in ftrack, you can create the component manually and add it to the ftrack.server location:

# Retrieve or create version.
version = session.query('AssetVersion', 'SOME-ID')

server_location = session.query('Location where name is "ftrack.server"').one()
filepath = '/path/to/local/file.mp4'

component = version.create_component(
path=filepath,
data={
'name': 'ftrackreview-mp4'
},
location=server_location
)

# Meta data needs to contain *frameIn*, *frameOut*, *frameRate*, *height*
# and *width*.
component['metadata']['ftr_meta'] = json.dumps({
'frameIn': 0,
'frameOut': 150,
'frameRate': 25,
'height': 720,
'width': 1280
})

component.session.commit()
tip

It is possible to add multiple components with different resolutions. If you add multiple components, they need to be named correctly. The lowest resolution should keep the name ftrackreview-mp4 but the higher resolutions should be named ftrackreview-mp4-1080, ftrackreview-mp4-1440, ftrackreview-mp4-2160.

To publish an image for review the steps are similar:

# Retrieve or create version.
version = session.query('AssetVersion', 'SOME-ID')

server_location = session.query('Location where name is "ftrack.server"').one()
filepath = '/path/to/image.jpg'

component = version.create_component(
path=filepath,
data={
'name': 'ftrackreview-image'
},
location=server_location
)

# Meta data needs to contain *format*.
component['metadata']['ftr_meta'] = json.dumps({
'format': 'image',
'height': 3840,
'width': 3840
})

component.session.commit()
tip

It is possible to add multiple components with different resolutions. If you add multiple components, they need to be named correctly. The lowest resolution should keep the name ftrackreview-image and a higher resolution image should be named ftrackreview-image-high.

To make a pdf reviewable, add format to the original pdf component. Also generate a reviewable image from it as in the previous step and use that as the thumbnail of the AssetVersion:

component['metadata']['ftr_meta'] = json.dumps({
'format': 'pdf'
})

Here is a list of components names and how they should be used:

Component NameUse
ftrackreview-imageImages reviewable in the browser
ftrackreview-image-highHigh resolution image
ftrackreview-mp4H.264/mp4 video reviewable in browser
ftrackreview-mp4-10801080p resolution H.264/mp4 video
ftrackreview-mp4-14401440p resolution H.264/mp4 video
ftrackreview-mp4-21602160p resolution H.264/mp4 video
note

Make sure to use the pre-defined component names and set the ftr_meta on the components. PDF components should not use any of the pre-defined component names.