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

Suffix 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.

includeCameraAudioInSubclip

✘

Boolean

Include camera onboard audio in subclip and by consequence in group clips

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,

useMasterMobsInGroup

✘

Boolean

Use mastermobs directly in group instead of subclips

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.