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
- If
enabledisfalse→ processor is skipped immediately. - If
ruleis empty → skip rule evaluation, proceed to URL filters. - If
ruleis set and non-empty → evaluate the rule expression against asset properties. The rule must evaluate totrueorfalse. If an error occurs during evaluation, the processor is skipped and the error is logged. - If
urlExcludesentries exist → if the asset'sobjectKeystarts with any excluded prefix, the processor is skipped for that asset. - If
urlMatchesentries exist → the asset'sobjectKeymust start with at least one matching prefix.
Combined evaluation:
(isIncluded & !isExcluded) | processRule
urlMatchesandurlExcludesare matched against the start of theobjectKeyand 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:
| Operator | Meaning |
|---|---|
== | 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:
| Processor | Requires |
|---|---|
AudioExtraction | (none) |
KLVExtraction | (none) |
Comprehend | (none) |
SceneDetection | (none) |
Translate | Transcribe, AudioExtraction |
Transcribe | AudioExtraction |
TranscribeMedical | AudioExtraction |
ScreenshotsOnInterval | GenerateScreenshotBatches, GenerateScreenshots |
ScreenshotsAtShotChange | GenerateScreenshotBatches, GenerateScreenshots |
ScreenshotAtZero | GenerateScreenshotBatches, GenerateScreenshots |
SingleScreenshotAtTimecode | GenerateScreenshotBatches, GenerateScreenshots |
DetectFaces | GenerateScreenshotBatches, GenerateScreenshots, RekognitionImageIndexFaces, RekognitionImageSearchFaces, CreatePersons |
CelebrityRecognition | GenerateScreenshotBatches, GenerateScreenshots, RekognitionImageCelebrityRecognition |
TextDetection | GenerateScreenshotBatches, GenerateScreenshots, RekognitionImageDetectText |
ContentModeration | GenerateScreenshotBatches, GenerateScreenshots, RekognitionImageUnsafeContent |
ObjectDetection | GenerateScreenshotBatches, GenerateScreenshots, RekognitionImageLabels |
CustomLabels | (none) |
