Downloading versions


is there an AMI/workflow that would allow a user to download multiple selected versions (images) from a Versions page of a task?

Currently we are doing this by hand whenever the need arises… but it’s becoming cumbersome…



Hi Cape,

There is indeed an AMI workflow that could help here.

The basic idea is that you’ll have an AMI that appears in Version contexts and will be registered not with an http/https URL but a custom protocol URL that will launch a script on the local computer. This script would then iterate over the selected versions and download the media.

The AMI setup in Shotgun is like any normal AMI but you’ll choose a URL with a custom protocol, I personally like using shotgun://.

You’ll need to register this protocol with the local computers needing this functionality. Here is some documentation on how to do this:

Once your custom protocol launches your script, the AMI url will be passed to your script as an argument and you can parse it and act on it’s payload as you see fit.

Pro tip:

When starting out a facility with workflows using custom protocols I like to register a single protocol on all workstations - shotgun://. All local system AMIs then use this single protocol for their endpoints but the URL is changed to indicate which functionality to run and the script code cues off the URL to know which functionality to run.

For example you could have one AMI with the base URL shotgun:// which will be registered to the Version context and will download your media and another with the base URL shotgun:// which will be registered with the Delviery entity and will prep a delivery for your coordinators to send to the client.

Here is a personal experiment of mine which shows this model for macOS. This is provided as-is with absolutely no support and is not Shotgun Software or Autodesk certified. Also, the Python API version that it references if gruesomely out of date. :smiley:

If you have questions regarding any of the above, please let me know!



I made an AMI which does exactly what you describe. I can’t share it since it was made for my employer. However here are some tips. You’ll need to learn about setting up an AMI which uses a custom protocol handler & shotgun python API, script key management. Then read about how files are handled. If you are linking publishes to versions, explore the published files field via the API as it might be a better source of file path information. A more complex setup could be to use a http AMI + web app platform.