Aaf ExportRequest

This is used to start the export towards AAF.

Property Reference

The properties below are not all applicable to an AAF export request, as the ExportRequest object is shared between aaf export, subtitle export etc.

Field Name Required Type Description Format

aafClipColorDefinitions

List of AAFClipColorDefinition

List of aaf clip color definitions

aafGroupDefinitions

List of AAFGroupDefinition

List of aaf group definitions

aafMarkerDefinitions

List of AAFMarkerDefinition

List of aaf marker definitions

aafSequenceDefinitions

List of AAFSequenceDefinition

List of aaf sequence definitions

advanced

Boolean

bins

List of BinConfig

For fcp/premiere exports. List of bins to create in the export. The value is a field of clipMetadata, the label is a human-readable label.

clipName

List of string

For fcp/premiere exports. Array of clipMetadata fields, used to construct the clip name in the export. Example ['scene', 'offload_path_3'].

disclaimers

List of DisclaimerConfiguration

downloadName

String

The filename to use. It is best to omit the extension, it will be added automatically.

ebuDisplayStandardCode

Integer

For subtitle_ebustl exportType.

int32

ebuStlLanguageCode

String

For subtitle_ebustl exportType.

ebuStlMarginBottom

Integer

For subtitle_ebustl exportType. Bottom margin.

int32

ebuStlMarginTop

Integer

For subtitle_ebustl exportType. Top margin.

int32

ebuStlTeletextDoubleHeight

Boolean

For subtitle_ebustl exportType.

ebuStlTeletextUseBox

Boolean

For subtitle_ebustl exportType.

ebuStlTextJustification

String

For subtitle_ebustl exportType.

editDecisionListId

Long

The id of the EditDecisionList to export. It is not necessary to provide the editorialObjectId / subEditorialObjectId parameters if this is provided.

int64

editorialObjectId

Long

id of the EditorialObject to export

int64

exportConfiguration

exportConfiguration

exportName

Boolean

Prefix clip name with episode, scene, shot & take labels

exportType

String

The type of export. For example, subtitle_ebuttd.

extraMetadata

List of FieldSelector

For aaf export only. Extra metadata to set on the clips in the export. By default, all customFields and the cameraId are added to the AAF.

fileNameTemplate

String

How to construct the filenames inside the zip.

fontFamily

String

For exportType transcript_pdf_text, the font family to use in the pdf.

fontSize

String

For exportType transcript_pdf_text, the font size to use in the pdf.

format

String

headers

List of string

Information to put in the header of the export file. For exportType transcript_pdf_text this will be at the top of the pdf file.

includeAnnotations

List of string

List of annotation funnels to include as markers on the clips. For now, only ClipAnnotation and TranscriptAnnotation are supported.

includeColorCodes

Boolean

For subtitle exports. Export with color tags.

includeCommentsAsSubclips

Boolean

For aaf export only. Create subclips in the AAF for Limecraft Flow subclips (comments)

includeGroupClipsInAAF

Boolean

For aaf export only. You can make this false if multicam sync is not needed.

includeSequenceInAAF

Boolean

For aaf export only. Include a sequence containing all the clips in the export.

includeSourceChainToAAF

Boolean

For aaf export only. Include the Master MOBs in the AAF. Set true if you want to import the clips in your bin.

includeSubclipsInAAF

Boolean

For aaf export only. Include the subclips in the export. You can make this false if you do not want to export any audiosync information.

language

String

For subtitle / transcript exports. Which language to export for the clip(s).

mediaFolder

String

File path resolve in fcp/fcpxml/premiere. Path of the parent folder where the media is located. Typically, a drive letter(windows) or a volume. (only applicable when `pathResolveLocation=FILENAME`).

pathResolveLocation

String

File path resolve in fcp/fcpxml/premiere. Specify which location information should be used in export. For example FILENAME, LOCATION, ARCHIVE1, ARCHIVE2, ARCHIVE3, ALTERNATE.

Enum: FILENAME, LOCATION, ARCHIVE1, ARCHIVE2, ARCHIVE3, ALTERNATE,

profile

String

The profile chosen for this export. Possible values depend on the particular export, but often corresponds to the MediaObjectInstance profile.

redo

Boolean

Run again, even if the workflow already ran in this context.

redoSingleTask

Boolean

resolveMethod

String

File path resolve in fcp/fcpxml/premiere. Method to use to resolve media paths. Can be OFFLOADPATH or ORIGINAL. (only applicable when pathResolveLocation=FILENAME)

Enum: ORIGINAL, OFFLOADPATH,

select

Object

Use this to define the query to search for things to export.

skipActiveWorkflowTest

Boolean

sourceType

String

storeMasterMobIds

Boolean

For aaf export only. Store used mastermob ids for subclip and group clip, only used in interplay sync, false by default

subEditorialObjectId

Long

id of the child EditorialObject to export. The editorialObjectId should contain the id of the parent EditorialObject.

int64

subtitlePresetId

String

For subtitle exports. Export the subtitle with this subtitlePresetId.

targetPath

String

timeBase

String

Set to 'smpte' for SMPTE time and to 'media' for time relative to start of video.

type

String

The MediaObjectInstance type to use for media. For example RAW, EDL, PROXY.

Enum: RAW, PROXY, EDL, SHOTSTITCH, STITCH, THUMB, THUMB_SHOT, THUMB_SIXTY, WAVEFORM, AUDIO_MONO, AUDIO_SPEECH, VOLDEMORT_XML, ATTACHMENT, HDR_PROXY, MEZZANINE_PROXY,

useOverrideTimecode

String

useReferenceTimecode

String

useStoredMasterMobIds

Boolean

For aaf export only. Use stored mastermob ids, only used in interplay sync, false by default

useTrackNumbers

Boolean

For aaf export only. Number tracks according to original metadata (with gaps).

waitForWorkflow

Boolean

workflowLabel

String

Example

{
  // determine which media to use during export (by type and profile)
  "type": "EDL",
  "profile": "auto", // auto takes any avid media (moi with aaf)
  "exportName": true, // Prefix clip name with episode, scene, shot & take labels
  // determine which type to export (avid, premiere, ...)
  "exportType": "aaf.aaf",
  // Number tracks according to original metadata (with gaps).
  // use track numbers from source, e.g. 4,5,6 or just start at 1, e.g. 1, 2, 3
  "useTrackNumbers": false,
  // only these funnels are loaded to be used as markers (can be filtered later)
  "includeAnnotations": [
    "ReviewComment"
  ],
  // determine which media to group together, will do equivalent of multicam sync on selected
  // media even if not synced in flow/edge, these group clips are numbered sequentially
  "aafGroupDefinitions": [
    {
      "query": {},
      "name": "[(${ context.editorialObject.parent.title })] [(${ context.editorialObject.title })] Sync",
      "color": "#911eb4"
    }
  ],
  // determine clip color based on metadata (query is on a solr object)
  "aafClipColorDefinitions": [
    {
      "color": "#3cb44b",
      "query": {
        "key": "cameraName",
        "values": [
          "TAS1"
        ]
      },
      "clipTypes": [
        "MASTERCLIP"
      ]
    }
  ],
  // define markers on clips, subclips, ...
  "aafMarkerDefinitions": [],
  // Create subclips in the AAF for Limecraft Flow subclips (comments)
  "includeCommentsAsSubclips": false,
  // Include the subclips in the export. You can make this false if you do not want to export any audiosync information.
  "includeSubclipsInAAF": true,
  // Include the Master MOBs in the AAF. Set true if you want to import the clips in your bin.
  "includeSourceChainToAAF": true,
  // Include a sequence containing all the clips in the export. // replaced with sequence definition
  "includeSequenceInAAF": true,
  // You can make this false if multicam sync is not needed.
  "includeGroupClipsInAAF": true
}

Colors - aafClipColorDefinitions

add colors to packages by defining them as follows

  • a query to indicate when to apply the color. (SolrDocument MOA)

  • color as an rgb value

  • indicate packageType to which the color should be applied

Example:
All circled clips must be green

{
  "color": "#00FF00",
  "query": {
    "key": "circled",
    "values": [
      "true"
    ]
  },
  "clipTypes": [
    "MASTERCLIP" // SUBCLIP | GROUPCLIP
  ]
}

Markers - aafMarkerDefinitions

Add markers/locators to packages by defining them as follows

  • a query to indicate which annotations to add as markers

  • color of the marker. The color is one of these eight strings: RED, GREEN, BLUE, CYAN, MAGENTA, YELLOW, BLACK, WHITE

  • indicate packageType to which the marker should be added

  • track: indication of track marker is added to

Example
ClipAnnotations are added as red markers on a subclip

{
  "query": {
    "key": "funnel",
    "values": [
      "ClipAnnotation"
    ]
  },
  "color": "RED", // TODO determine allowed colors
  "packageType": "SUBCLIP",
  "track": "V1" // if no video fallback to A1
}

Auto grouping - aafGroupDefinitions

For every group definitions all of the loaded MASTERCLIPS are filtered with the provided query (e.g. only circled) and are grouped according to timecode. The masterclips are sorted by timecode and added to the group if it overlaps with the previous masterclip. If there is no overlap with the previous item than it belong to a new group. Groups are named in ascending order, MyGroup1, MyGroup2, …

If there is one item that spans the entire day there will only be one group. If the group consist of only one item we won’t create a GROUPCLIP but just reference to the MASTERCLIP directly. These groups can only be used in MULTITRACKv2 sequences.

Example:

{
  "aafGroupDefinitions": [
    {
      "query": {},
      "name": "MyGroup",
      "color": "#911eb4"
    }
  ]
}

Sequences

Add sequences to the aaf as follows

  • query to indicate which clips to include, include all if empty

  • aafMarkerDefinitions: add markers to sequence with same syntax as above

  • clipType: define type of sequence

    • GROUPCLIP: For every entry in the sequence it tries to use the corresponding group clip, if it doesn’t exist it does a fallback to SUBCLIP and MASTERCLIP. There are no gaps between entries.

    • SUBCLIP: For every entry in the sequence it tries to use the corresponding subclp if it doesn’t exist it does a fallback to MASTERCLIP (This is the previous current behaviour). There are no gaps between entries.

    • MULTITRACK: Similar sequence as GROUPCLIP but with video segments spread over multiple tracks in sync with each other (V1, V2, …) but still pointing to the created GROUPCLIP object. There are no gaps between entries.

    • MULTITRACKV2: More advanced timeline where existing syncing information is ignored. This sequence puts media (MASTERCLIP) on the timeline according to it’s timecode (with gaps). By using video and audio track definition the user can determine the order of the tracks. It’s also possible to use defined GROUPCLIPS that were created by defining an aafGroupDefinition, which does auto grouping of selected content based on timecode. If there overlapping entries on the same track the sequence generation will fail.

  • orderBy: define the order in which the packages should be added to the sequence

    • by position in EDL (EDL)

    • by timecode (TIMECODE)

    • by timecode, with gaps (TIMECODE_WITH_GAPS)

  • label: text to use as sequence name

Examples

default sequence, currently added when setting includeSequence

{
  "query": {},
  "aafMarkerDefinitions": [],
  "clipType": "SUBCLIP", // fallback to masterclip
  "orderBy": "EDL",
  "label": "DEFAULT_SEQUENCE"
}

timeline with all subclips in chronological order

{
  "color": "#0000FF",
  "label": "subclip all",
  "orderBy": "TIMECODE",
  "clipType": "SUBCLIP",
  "aafMarkerDefinitions": []
}

timeline with groups in chronological order

{
  "color": "#FF0000",
  "label": "group clips",
  "orderBy": "TIMECODE",
  "clipType": "GROUPCLIP",
  "aafMarkerDefinitions": []
}

timeline with only the circled subclips

{
  "color": "#00FF00",
  "label": "Multitrack with circled",
  "query": {
    "key": "circled",
    "values": [
      "true"
    ],
    "modifiers": []
  },
  "orderBy": "TIMECODE",
  "clipType": "MULTITRACK",
  "aafMarkerDefinitions": []
}

MULTITRACKV2 - Sequence based on timecodes (with gaps)

{
  "color": "#f032e6",
  "label": "[(${ context.editorialObject.parent.title })] [(${ context.editorialObject.title })] Sync Sequence",
  "orderBy": "TIMECODE",
  "clipType": "MULTITRACKV2",
  // markers on sequence
  "aafMarkerDefinitions": [
    {
      "color": "BLUE",
      "query": {
        "key": "funnel",
        "values": [
          "ReviewComment"
        ]
      },
      "track": "V1"
    }
  ],
  // define how to build audio tracks
  "audioTrackDefinitions": [
    {
      "label": "TAS1",
      "query": {
        "key": "trackMetadata.cameraName",
        "values": [
          "TAS1"
        ],
        "modifiers": []
      }
    },
    {
      "label": "CAM1",
      "query": {
        "key": "trackMetadata.cameraName",
        "values": [
          "CAM1"
        ],
        "modifiers": []
      }
    }
  ],
  // define how to build video tracks
  "videoTrackDefinitions": [
    {
      "label": "GROUP",
      "query": {},
      "groupName": "[(${ context.editorialObject.parent.title })] [(${ context.editorialObject.title })] Sync"
    },
    {
      "label": "CAM1",
      "query": {
        "key": "trackMetadata.cameraName",
        "values": [
          "CAM1"
        ],
        "modifiers": []
      }
    }
  ]
}

In case a query needs to be evaluated on multiple clips (e.g. group clip) it will only be withheld when it’s valid for all clips.