Review Submission

Review Submission

Provides functionality to submit image sequences to Shotgun for review.

By: Shotgun Software
Latest Version: v0.3.2 (beta)
For our version numbers, we follow the Semantic Versioning standard.
System Name: tk-multi-reviewsubmission


This document describes functionality only available if you have taken control over a Toolkit configuration. Please refer to the Shotgun Integrations User Guide for details. An app that provides functionality to help submitting image sequences as Versions in Shotgun for review. This app does not have a UI but instead provides API methods for quicktime and review generation. You can call the app from your scripts, or from within hooks. For example, your publish configuration can call this as part of a post process hook if you want to create a quicktime and send it for review. This app will generate a quicktime with burn-ins and slates. You can configure if you want it to upload the quicktime to Shotgun or keep it on disk, or both. Lastly it will create a new version inside of Shotgun, ready to reviewed in Screening Room!


This app creates quicktimes from image sequences and submits them as Versions to Shotgun in order to facilitate review. The generated quicktimes will have slates and burnins. Things such as font, logo position, movie compression options and burnin / slate information are currently hard coded and as such you are encouraged to fork the app and adjust to your tastes.

Here are a the current default formats for slate and burnin:

Main Menu

Main Menu

This app does not have a user interface, but is instead meant to be called from inside other apps like the multi-publish app.

How do I use this App?

Should you want to leverage this app from within your own apps or hooks here is a quick rundown of the simple way to go about it.

  • Get the tk-multi-reviewsubmission app from the current engine. This can be done from inside a hook using the call self.parent.engine.apps.get('tk-multi-reviewsubmission').
  • If the app is available, call the render_and_submit_version() method.

Here's an example of what this can look like inside your hook code:

review_submission_app = self.parent.engine.apps.get("tk-multi-reviewsubmission")
if review_submission_app:

The arguments that you need to pass to render_and_submit_version are as follows:

  • template: A template that defines where the files to publish are located
  • fields: Fields that will be used to fill out the template
  • first_frame: The first frame of the image sequence to process
  • last_frame: The last frame of the image sequence to process
  • sg_publishes: A list of Shotgun Published File objects to link the version to.
  • sg_task: A Shotgun Task link dictionary to link the version to.
  • comment: Text to add to the Version's description.
  • thumbnail_path: The path to a thumbnail to use for the version when the movie isn't being uploaded to Shotgun (this is set in the config)
  • progress_cb: A callback to report progress with. This should be of the form: callback(percent, message)
  • color_space: The color space that the input frames are in. In Nuke, this would be one of the enumeration values on the colorspace knob for the Write node.

Related Apps and Documents


This document describes functionality only available if you have taken control over a Toolkit configuration. Please refer to the [Shotgun Integrations User Guide]( for details. Multi Publish is a workflow app that artists can use to publish files to Shotgun. The app provides a simple UI on top of a highly customizable core that can be easily configured to publish any combination of files or data from a work scene and it's dependencies (e.g. the Maya scene, Nuke Script, OBJ's, Alembic Caches, Cameras, Textures, etc.). The multi publish app is used in all default configurations and can be easily configured to support workflows ranging from Alembic Cache generation in Maya to render publish in Nuke, art reference management in Photoshop or plate ingestion in the Shotgun and shell environments.


Details TBD


This document describes functionality only available if you have taken control over a Toolkit configuration. Please refer to the [Shotgun Integrations User Guide]( for details. This app adds a node type to Nuke which you can add anywhere in your node graph. Once added to your scene, you can double click the node, go to the properties page and hit the "Send to Review" button. The app will then render a quicktime of your scene, add burnins and slates and send it to Shotgun. It will also generate filmstrip thumbnails which makes it easy to preview the version in Shotgun.

Write Node

This document describes functionality only available if you have taken control over a Toolkit configuration. Please refer to the [Shotgun Integrations User Guide]( for details. This app contains a custom Write Node gizmo for Nuke, abstracting away the file system paths from the user, allowing them to focus on just naming the particular output. Shotgun takes care of the rest! This app is typically used in conjunction with the Publish app and if you install the publish app for nuke, you most likely want to install this one too!

Installation and Updates

Adding this App to the Shotgun Pipeline Toolkit

If you want to add this app to Project XYZ, in an environment named asset, execute the following command:

> tank Project XYZ install_app asset tk-nuke tk-multi-reviewsubmission

Updating to the latest version

If you already have this item installed in a project and you want to get the latest version, you can run the update command. You can either navigate to the tank command that comes with that specific project, and run it there:

> cd /my_tank_configs/project_xyz
> ./tank updates

Alternatively, you can run your studio tank command and specify the project name to tell it which project to run the update check for:

> tank Project XYZ updates

Collaboration and Evolution

If you have access to the Shotgun Pipeline Toolkit, you also have access to the source code for all apps, engines and frameworks in Github where we store and manage them. Feel free to evolve these items; use them as a base for further independent development, make changes (and submit pull requests back to us!) or simply tinker with them to see how they have been built and how the toolkit works. You can access this code repository at

Special Requirements

  • You need Shotgun Pipeline Toolkit Core API version v0.14.0 or higher to use this.


Below is a summary of all the configuration settings used. These settings need to be defined in the environment file where you want to enable this App or Engine.


Type: int

Default Value: 1024

Description: The width of the rendered movie file


Type: config_path

Description: This is the path to an image to use on the slate such as a company logo. The supplied image will be reformated into a 400 pixel box and the lower left corner of the logo will be aligned 100 pixels to the right and 100 pixels above the lower left corner of the slate. You can use an image with an alpha channel if you want to add transparency. Currently any image format supported by Nuke is adequate. If this setting is an empty string, no logo will be applied.


Type: str

Default Value: rev

Description: The value to use for a new Version's status.


Type: hook

Default Value: {self}/

Description: Hook for customizing codec settings used when generating items for review.


Type: template

Optional Template Keys: ***

Description: Template defining the output location of the movie file on the the file system. For this template you can use all the fields defined in the template passed to the render_and_submit fields. In addition to these you can use the special fields width and height, which contain the resolution of the movie. If the store_on_disk setting is false, this setting will still be required but will be used as a temporary location for processing before the file is uploaded to Shotgun.


Type: bool

Default Value: True

Description: Should the movie being created be kept on disk? Disabling this as well as the upload_to_shotgun option will effectively disable the whole tool.


Type: bool

Default Value: True

Description: Should the movie being created be uploaded to Shotgun as a version or just kept on disk? Disabling this as well as the store_on_disk option effectively disables the whole tool.


Type: int

Default Value: 3

Description: This value will be used to pad the version number in the slate and various movie burnins. This will not affect version number padding in the movie filename. See movie_path_template. Use 1 for no padding.


Type: int

Default Value: 540

Description: The height of the rendered movie file

Release Notes

Welcome to the release notes for this App. Below you will find an overview of all the changes we did for each release. We try to be as detailed as possible and include all bugs we have fixed, features we have added and things that may have changed. If you have questions about a particular release, don't hesitate to contact our support team!



Fix an issue where bad quality QuickTimes gets generated in Nuke 9



Adds metrics logging


Adds support for context changes.



fix for error when using file_type specific settings in the codec_settings hook


Previously we were creating the node by passing in all of the settings at once which was generating errors if Nuke tried to set the knob before the file_type had been set. This change creates the node with the file_type setting, and then applies the rest of the settings from the codec_settings hook after.



Moves the Quicktime generation settings into a hook


  • Allows studios to easily override the default output settings when generating movies to submit to Screening Room.
  • Updated default settings for Nuke 9+ on linux. Nuke 9 removed ffmpeg as a file_type and replaced it with mov64. This handles that case and sets the codec to jpeg in that case to match the behavior on Mac and Windows.


fixed bug causing an error if Nuke was in proxy mode


While the Publish app does not support publishing from Nuke in proxy mode, this app does support submitting proxy renders in case users have custom apps or workflows that need this


Add handling for Nuke 9 knob name change from codec to meta_codec


Added new method to app that allows the colorspace of the input frames to be specified


  • Previously, the colorspace was not being passed through for the rendered frames so if it was set to a non-default value, the rendered movie would be wrong.


Fixed issue with Quicktimes rendering black in Nuke 7 on Windows


The artist field on the Version is now populated by the app


Fixed FFMPEG call for Nuke 7 in Linux

Details: The FFMPEG call syntax worked in Nuke 6.3 but not 7 in Linux - thanks for the tip, Benoit Leveau!


Fixed issue when using legacy Tank Published File entities


Documentation Adjustments.


Added threaded review submission.


Polish and Bug fixes.

Details: - Now populates more fields on version. - Versions are created by the current user. - Better naming and handling of slate parameters.


Initial Release to the App Store.