Turning On/Off Asset Processors and Dependencies

How to enable, disable, and conditionally scope asset processors using config rules, URL filters, and dependency chains.

The system configuration file contains an application/processors section with a processorList array. Each entry controls whether a processor runs, and optionally restricts it to specific S3 path prefixes using URL match/exclude filters and expression-based rules.

Processor Configuration

{
  "application/processors": {
    "processorList": [
      {
        "urlMatches": [],
        "urlExcludes": [],
        "name": "ComprehendSentiment",
        "rule": "",
        "enabled": false
      },
      {
        "urlMatches": ["content/MyCompany/"],
        "urlExcludes": ["content/MyCompanyArchive/", "content/MyCompany/2017/"],
        "name": "ContentModeration",
        "rule": "",
        "enabled": true
      }
    ]
  }
}

MediaConvert profiles also support the same urlMatches, urlExcludes, and rule filtering:

{
  "application/mediaconvertSettings": {
    "processingProfile": "demo3-default",
    "profiles": [
      {
        "urlMatches": ["content/MyCompany/"],
        "urlExcludes": ["content/MyCompanyArchive/", "content/MyCompany/2017/"],
        "templateName": "demo3-default",
        "format": "mp4",
        "rule": "(fileExtension != '.mp4' and fileExtension != '.webm') or videoWidth > 1920 or videoHeight > 1080",
        "title": "MP4 Proxy",
        "enabled": true,
        "slug": "mp4-proxy"
      }
    ]
  }
}

Evaluation Logic

  1. If enabled is false → processor is skipped immediately.
  2. If rule is empty → skip rule evaluation, proceed to URL filters.
  3. If rule is set and non-empty → evaluate the rule expression against asset properties. The rule must evaluate to true or false. If an error occurs during evaluation, the processor is skipped and the error is logged.
  4. If urlExcludes entries exist → if the asset's objectKey starts with any excluded prefix, the processor is skipped for that asset.
  5. If urlMatches entries exist → the asset's objectKey must start with at least one matching prefix.

Combined evaluation: (isIncluded & !isExcluded) | processRule

urlMatches and urlExcludes are matched against the start of the objectKey and must not begin with a /.

Rule Expression Syntax

Rules use C# / SQL-compatible expression syntax evaluated against asset properties. Field names are camelCase and case-sensitive.

Example rules:

// Video is hi-def
{"rule": "videoWidth > 1080 or videoHeight > 1080"}

// Video bitrate exceeds 6 MB/s
{"rule": "videoBitRate > 6291456"}

// More than 2 audio channels
{"rule": "audioChannels > 2"}

// Process videos with no audio track
{"rule": "hasAudio == false"}

// Process small videos 3 MB or under
{"rule": "contentLength <= 24000"}

Logical chaining operators:

C#SQL
&&AND
||OR

Comparison operators:

OperatorMeaning
==Equal to
!=Not equal to
>Greater than
>=Greater than or equal to
<Less than
<=Less than or equal to
!Logical NOT (negation)

String comparisons are case-insensitive. Single quotes in rule strings are automatically converted to double quotes by the system. Enums are not supported — use their integer equivalents instead.

Processor Dependencies

Some processors depend on others running first. If a dependent processor is enabled but its dependency is disabled, it will not run correctly. The full dependency map:

ProcessorRequires
AudioExtraction(none)
KLVExtraction(none)
Comprehend(none)
SceneDetection(none)
TranslateTranscribe, AudioExtraction
TranscribeAudioExtraction
TranscribeMedicalAudioExtraction
ScreenshotsOnIntervalGenerateScreenshotBatches, GenerateScreenshots
ScreenshotsAtShotChangeGenerateScreenshotBatches, GenerateScreenshots
ScreenshotAtZeroGenerateScreenshotBatches, GenerateScreenshots
SingleScreenshotAtTimecodeGenerateScreenshotBatches, GenerateScreenshots
DetectFacesGenerateScreenshotBatches, GenerateScreenshots, RekognitionImageIndexFaces, RekognitionImageSearchFaces, CreatePersons
CelebrityRecognitionGenerateScreenshotBatches, GenerateScreenshots, RekognitionImageCelebrityRecognition
TextDetectionGenerateScreenshotBatches, GenerateScreenshots, RekognitionImageDetectText
ContentModerationGenerateScreenshotBatches, GenerateScreenshots, RekognitionImageUnsafeContent
ObjectDetectionGenerateScreenshotBatches, GenerateScreenshots, RekognitionImageLabels
CustomLabels(none)