Addons

Nuxeo Frame.io Connector

Updated: June 14, 2024

The Nuxeo Frame.io connector allows users to improve their capabilities of syncing and collaborating on content from/to Adobe Premiere, and other video editing tools, through Frame.io.

It enables you to store master files in Nuxeo, but collaborate on lower resolution proxies through Frame.io. You can therefore do all the review work in Frame.io and once you are finished, send your finished video back to Nuxeo. It will import the Master file along with its Frame.io metadata, comments and annotations.

This page will help you to:

  • Configure the Frame.io account.
  • Deploy and configure the Frame.io add-on for Nuxeo.
  • Test the add-on.

Installation

Frame.io Setup

Registration

  1. You first need to register a Frame IO account or connect to your account.
  2. Create a team/verify that all users within your team have the correct access permissions.
  3. Create a new project and upload some assets.

frameio-create-project.png
frameio-create-project.png

Create an OAuth 2 Application

A user with administrator priveleges on the Frame.io account needs to create the Oauth 2 application.
For this you can:

  1. Click on your at the top left, and click on Apps & Integration.
    frameio-apps-and-integrations.png
    frameio-apps-and-integrations.png
  2. From the left menu, select the Apps link in the Developer category.

    frameio-apps-developer.png

In case of blank page:

  1. Login to the Frame.io developer site at https://developer.frame.io
  2. Navigate to https://developer.frame.io/app/oauth-apps
    frameio-developer.png
    frameio-developer.png
    frameio-create-oauth-app.png
    frameio-create-oauth-app.png
  3. Click the Create an OAuth app button.
  4. Fill in the form:

It should look like this in the end:

frameio-oauth-app-endresult.png
frameio-oauth-app-endresult.png

You'll want save the Client Id and Client Secret because we will need them at a later stage.

Nuxeo Side

Prerequisites

Your Nuxeo instance must be live.
As an example: https://nightly.nuxeo.com/nuxeo

The URL should match the previously created OAuth 2 app redirect URL on the Frame IO side!

Addon Deployment

  1. Stop your nuxeo instance:
    /opt/nuxeo/bin/nuxeoctl stop
    
  2. Install the Frame.io <> Nuxeo add-on as you would any other:
    /opt/nuxeo/bin/nuxeoctl mp-install nuxeo-frameio
    
  3. Start your Nuxeo instance:
    /opt/nuxeo/bin/nuxeoctl start
    

Register the Frame.io provider

Only an administrator user is able to register the Frame.io provider. You only need to do this once to enable folder-binding functionality for your team.

  1. Log into the Nuxeo UI with Administrative privileges.
  2. From the left menu, go to Administration, then Cloud Services.
    frameio-cloud-services.png
    frameio-cloud-services.png
  3. Add a new provider.

The following form will be pre-filled for you, you only need to add the Client ID and Client Secret, enable the provider and enable the service.

Fill the form:

  • Service name: frameio
  • Description: Frame.io Provider
  • Client ID: paste from Frame.io Oauth 2 application
  • Client Secret: paste from Frame.io Oauth 2 application
  • Authorization Server URL: https://applications.frame.io/oauth2/auth
  • Token Server URL: https://applications.frame.io/oauth2/token
  • User Authorization URL:
  • Scopes: action.create,action.delete,account.read,comment.read,action.update,action.read,team.read,asset.read,asset.create,asset.update,project.read

    frameio-edit-provider-entry.png
    frameio-edit-provider-entry.png

Your team will now be ready to bind folders with their Frame.io projects.

Use Case

Prerequisites

The user must have:

  • A Frame.io account
  • Access priveles to the Frame.io project
  • A Nuxeo account

Step 1: Bind a Nuxeo folder with a Frame.io project.

  1. Login to Nuxeo.
  2. Create a new Folder or go to an existing one.
  3. From the summary view, click the Bind to Frame.io option, available on the action menu.
    frameio-bind-to-frameio.png
    frameio-bind-to-frameio.png
  4. A pop-up is displayed.
    You can name the Custom Action that will appear on the Frame.io side to push assets to your Nuxeo repository. You can call it Publish to Nuxeo for example.
    If you want to bind another folder, another Custom Action will be created and you will need to name it differently.
  5. Fill the form and click the Validate button.
    frameio-popup-bind-folder.png
    frameio-popup-bind-folder.png
  6. Take a look at the new tab named Frame IO.
    You can now see that your folder is bound with the Frame.io team we selected earlier.
    frameio-tab-webui.png
    frameio-tab-webui.png

Step 2: Push an asset from Frame.io to Nuxeo

  1. Login to Frame.io.
  2. Navigate to the shared project.
  3. Select a file and push the file to Nuxeo using the custom action.
    frameio-publish-to-nuxeo.png
    frameio-publish-to-nuxeo.png
  4. After a few seconds, the popup displays "Asset pushed to Nuxeo”.
    It means that the video is being sent to Nuxeo and is currently being uploaded into your Nuxeo folder. You will receive an email notification when your video is available in your Nuxeo folder.
    frameio-popup-success.png
    frameio-popup-success.png

Step 3: Check the new created document into Nuxeo

From the summary view of the bound folder, check the new created document.

frameio-summary-view-bound-folder.png
frameio-summary-view-bound-folder.png

You are now able to retrieve your video and read the metadata imported from Frame.io in the Frame.io document tab.

Note that, if you are sending a new version of the video from Frame.io, we will then increment the version in Nuxeo following your rules.

frameio-tab-new-version.png
frameio-tab-new-version.png

Optional: UnBind a Nuxeo Folder with a Frame.io project.

frameio-unbind-nuxeo-folder.png
frameio-unbind-nuxeo-folder.png

At any given moment, you are able to unbid your folder with your Frame.io project.
This will have immediate effect and your Frame.io team members won’t be able to send new content to your Nuxeo folder.

Everything that was previously pushed to your Nuxeo folder will stay in your folder.

Version 1.3 Use Case: Push Assets from Nuxeo to Frame.io

You will now be able to send assets stored in Nuxeo to Frame.io to start your approval workflow on the selected assets. The Bind flow remains the same as before and is defined in the V1 addon explained earlier.

Into the Nuxeo folder, each compatible asset has now the “Push to Frame.io” action. You can send a single document or send them in bulk.

frameio-single-push-action
frameio-single-push-action

frameio-bulk-push-action
frameio-bulk-push-action

If the folder is not bound: action fire an error bubble message that display “Folder not bound"

When action is selected, a popup is displayed to:

  • Choose the team if the folder is bound to several teams
  • Choose the project
  • Choose the destination folder in Frame.io

frameio-target-folder-popup
frameio-target-folder-popup

frame.io-push-popup
frame.io-push-popup

You will also see a success popup message letting you know the document is being sent to frame.io.

frameio-push-success-message
frameio-push-success-message

The Nuxeo document is now locked.

frameio-lock
frameio-lock

The binary file is asynchronously uploaded in Frame.io, then The Frame.io facet is attached to the document to store the asset ID. Once the asset arrives to Frame.io, the user making the action will receive an email confirmation when the document is uploaded.

Frame.io-pushed-asset
Frame.io-pushed-asset

The document remains locked until the assets is approved on the Frame.io side and sent back to Nuxeo. Once you push back the asset to Nuxeo, then a new version is created and the document is unlocked.

frameio-version
frameio-version

Version 1.4 Use Case: Synchronize Frame.io Folders in Nuxeo

Sync folders
Sync folders

Flow: For each Nuxeo folder that is not synchronized or linked to Frame.io, an option called "Sync to Frame.io folder" is available. Multi-folder level support is included.

The authentication state is checked, and if not authenticated, the OAuth flow is initiated.

A synchronization popup appears, allowing the user to select the following: the Frame.io team, the Frame.io project, the Frame.io project subfolder (using a browsing widget that displays the Frame.io folder tree), and the document type to be used on the Nuxeo side for storing assets.

Upon submission, a "Frame.io sync" tab is added to the Nuxeo folder.

Asynchronous synchronization begins, creating a document per asset in the Nuxeo selected folder.

When the user clicks on the "refresh sync" button, the authentication state is checked, and if not authenticated, the OAuth flow is initiated.

Synchronization starts using the parameters displayed in the tab.

When the user clicks on the "remove sync" button, it becomes impossible to resync until a new synchronization is configured from the folder action.