4.2 Input Tiles
Tiles for importing your footage
Input tiles are the starting point of every Mosaic workflow. Upload the footage you want to work with, from your desired input source.

Video Input
Drag and drop or browse to upload your footage directly. You can also paste a link to import videos from YouTube and other sources.
| Details | |
|---|---|
| Max file size | 20 GB |
| Max duration | 300 minutes |
| Sources | Local upload, Paste Link (YouTube, etc.) |
YouTube Trigger
Watches a YouTube channel and automatically triggers your workflow when a new video is published. Add a channel by handle (e.g. @mkbhd) or URL, and optionally set a Callback URL to receive webhook notifications.
Best for automating clipping from a creator or channel.
Google Drive Trigger
Connect a Google Drive folder and Mosaic will monitor it for new files. When a new video lands in the folder, your workflow kicks off automatically.
TIP
If you have duplicate folder names, use Browse... to pick the exact folder.
Named-folder batching (optional). When you enable Batch Assets, Include subfolders, and Separate batch per subfolder, you can also supply a list of folder-name prefixes (for example a, b, c, or client). Matching is case-insensitive, and a folder matches when its name starts with one of those values. Files inside matching folders are rolled up into the nearest ancestor whose name does not start with one of those prefixes. For example, with prefixes a, b, and c, any file uploaded into parent/a/, parent/b/, or parent/c/ is batched together under parent. The walk continues upward if multiple nested ancestors also match. Leave the list empty to keep the classic per-subfolder behavior.
AWS S3 Trigger
Connect an AWS S3 bucket to automatically trigger workflows when new files are uploaded. Ideal for teams with cloud-based media pipelines.

INFO
Google Drive and AWS S3 triggers are available on certain plans. Manage your subscription to unlock automated triggers.
API Info
Node Params & API Details
This page is the runtime node parameter contract for input/trigger tiles, written for automation agents creating mosaics programmatically.
INFO
quality_*_slack_workspace_id, quality_*_slack_channel_id, quality_*_slack_channel_name, and quality_*_slack_mentions are deprecated and ignored. Use notification_settings.on_error for flag_and_continue failed-channel notifications.
Video Input
- Node ID:
9451e6ff-ac7f-4317-9055-a2f35f641b29
Node params
Video Input accepts no parameters at graph creation time. Simply create the node with no params_used.
Videos are supplied at run time via POST /agent/{agent_id}/run using video_inputs (canonical) or top-level shorthand fields video_urls, video_ids, node_render_ids, or mimir_assets (Mimir integration).
Example
{}YouTube Trigger
- Node ID:
6145e248-a149-4fea-a2bd-f869976424a3
Node params
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
channels | string[] | Yes | [] | YouTube channel IDs (UC...). UI resolves handles/URLs to IDs before save. |
callback_url | string | No | null | Optional webhook URL for trigger callbacks. |
Scenario requirements
channelsmust be non-empty for a usable trigger.- Creator plan or above is required in UI.
Example
{
"channels": ["UC_x5XG1OV2P6uZZ5FSM9Ttw"],
"callback_url": "https://example.com/webhooks/youtube-trigger"
}Google Drive Trigger
- Node ID:
1bcc12fd-176d-4d28-873d-1b154a564340
Node params
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
connection_id | string | Yes | "" | Unified/Drive connection identifier. |
folder_path | string | Yes (UI path flow) | "" | Human-readable monitored path (for UX + resolution). |
folder_id | string | Recommended | "" | Canonical folder ID used by backend watchers. |
batch_enabled | boolean | No | false | Enables grouped processing window. |
batch_debounce_minutes | number | No | 5 when batching | UI supports 5,10,15,30 minutes and 1-24 hours. |
batch_by_subfolder | boolean | No | false | If true, groups independently per subfolder (UI notes up to 20 levels). |
batch_folder_name_patterns | string[] | No | [] | Only used when batch_by_subfolder is true. Case-insensitive folder-name prefixes. A folder matches when its name starts with one of the provided values. Files inside matching folders are batched under the nearest non-matching ancestor. Each entry 1-128 chars, no /, max 50 entries. |
quality_low_res_action | "none" | "flag_and_continue" | "fail_task" | No | "none" | Action for <=720p detection. Legacy "flag" is treated as "flag_and_continue". |
quality_no_audio_action | "none" | "flag_and_continue" | "fail_task" | No | "none" | Action when no audio stream detected. Legacy "flag" is treated as "flag_and_continue". |
quality_letterboxing_action | "none" | "flag_and_continue" | "fail_task" | No | "none" | Action for letterboxing/pillarboxing detection. Legacy "flag" is treated as "flag_and_continue". |
quality_auto_rotate | boolean | No | false | Auto-orient media before downstream processing. |
transcodings | Record<string, TranscodingConfig> | No | { "Primary": ... } | One or more named transcoding groups (UI forces single group here). |
transcode_rules_enabled | boolean | No | false | Enables conditional transcoding filters. |
transcode_rules | TranscodeFilterRule[] | No | [] | Rule set evaluated against source media metadata. |
media_types_video | boolean | No | true | Enable video file processing. |
media_types_audio | boolean | No | true | Enable audio file processing. |
media_types_image | boolean | No | true | Enable image file processing. |
video_transcodings | Record<string, TranscodingConfig> | No | { "Primary": ... } | Per-media transcoding config for videos. Falls back to transcodings if not set. |
audio_transcodings | Record<string, TranscodingConfig> | No | { "Primary": { audio_codec: "aac" } } | Per-media transcoding config for audio. |
image_transcodings | Record<string, TranscodingConfig> | No | { "Primary": {} } | Per-media transcoding config for images. |
video_transcode_rules_enabled | boolean | No | false | Per-media conditional transcoding for videos. Falls back to transcode_rules_enabled. |
video_transcode_rules | TranscodeFilterRule[] | No | [] | Per-media rule set for videos. Falls back to transcode_rules. |
audio_transcode_rules_enabled | boolean | No | false | Per-media conditional transcoding for audio. |
audio_transcode_rules | TranscodeFilterRule[] | No | [] | Per-media rule set for audio. |
image_transcode_rules_enabled | boolean | No | false | Per-media conditional transcoding for images. |
image_transcode_rules | TranscodeFilterRule[] | No | [] | Per-media rule set for images. |
transcodings object schema
{
"Primary": {
"frame_rate_fps": 30,
"keep_source_fps": false,
"average_bitrate_mbps": 10,
"color_space": "rec.709",
"file_extension": "mp4",
"codec": "h.264 (AVC)",
"audio_format": "mp4a",
"audio_codec": "aac"
}
}transcode_rules schema
[
{
"id": "rule-1",
"field": "fps",
"comparator": "lt",
"value": 24
}
]field:fps | max_dimension | codec | containercomparator:lt | gt | lte | gte | eq | neq- Transcoding is always on for matched files (mandatory); there is no opt-out. The pipeline performs a single transcoding pass per asset (no dual proxy pass plus group pass).
- Runtime behavior: when conditional rules are enabled for a scope (global or per-media), transcoding runs only when at least one rule in that scope matches.
AWS S3 Trigger
- Node ID:
aab5a93d-eaa5-46e3-900d-db67e955c9e7
Node params
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
s3_connection_id | string | Yes | "" | Saved AWS credential connection ID. |
bucket_name | string | Yes | "" | S3 bucket to watch. |
prefix | string | No | "" | Optional key prefix filter under the bucket. |
batch_enabled | boolean | No | false | Enables grouped processing window. |
batch_debounce_minutes | number | No | 5 when batching | UI supports 5,10,15,30 minutes and 1-24 hours. |
batch_by_subfolder | boolean | No | false | If true, groups independently per subfolder (UI notes up to 7 levels). |
quality_low_res_action | "none" | "flag_and_continue" | "fail_task" | No | "none" | Action for <=720p detection. Legacy "flag" is treated as "flag_and_continue". |
quality_no_audio_action | "none" | "flag_and_continue" | "fail_task" | No | "none" | Action when no audio stream detected. Legacy "flag" is treated as "flag_and_continue". |
quality_letterboxing_action | "none" | "flag_and_continue" | "fail_task" | No | "none" | Action for letterboxing/pillarboxing detection. Legacy "flag" is treated as "flag_and_continue". |
quality_auto_rotate | boolean | No | false | Auto-orient media before downstream processing. |
transcodings | Record<string, TranscodingConfig> | No | { "Primary": ... } | One or more named transcoding groups (UI forces single group here). |
transcode_rules_enabled | boolean | No | false | Enables conditional transcoding filters. |
transcode_rules | TranscodeFilterRule[] | No | [] | Rule set evaluated against source media metadata. |
media_types_video | boolean | No | true | Enable video file processing. |
media_types_audio | boolean | No | true | Enable audio file processing. |
media_types_image | boolean | No | true | Enable image file processing. |
video_transcodings | Record<string, TranscodingConfig> | No | { "Primary": ... } | Per-media transcoding config for videos. Falls back to transcodings if not set. |
audio_transcodings | Record<string, TranscodingConfig> | No | { "Primary": { audio_codec: "aac" } } | Per-media transcoding config for audio. |
image_transcodings | Record<string, TranscodingConfig> | No | { "Primary": {} } | Per-media transcoding config for images. |
video_transcode_rules_enabled | boolean | No | false | Per-media conditional transcoding for videos. Falls back to transcode_rules_enabled. |
video_transcode_rules | TranscodeFilterRule[] | No | [] | Per-media rule set for videos. Falls back to transcode_rules. |
audio_transcode_rules_enabled | boolean | No | false | Per-media conditional transcoding for audio. |
audio_transcode_rules | TranscodeFilterRule[] | No | [] | Per-media rule set for audio. |
image_transcode_rules_enabled | boolean | No | false | Per-media conditional transcoding for images. |
image_transcode_rules | TranscodeFilterRule[] | No | [] | Per-media rule set for images. |
Runtime behavior notes
flag_and_continuequality actions send the failed-channel notification configured on the tile, falling back to the mosaic failed-channel settings. If no failed Slack channel is configured, the task records a warning and continues.fail_taskstops processing.- If
batch_enabled=false, backend normalization forcesbatch_debounce_minutes=0andbatch_by_subfolder=false. - Transcoding is always on for matched files (mandatory); there is no opt-out. The pipeline performs a single transcoding pass per asset (no dual proxy pass plus group pass).
- Conditional transcoding uses "any rule matches" logic when enabled for a scope (global or per-media): transcoding runs only when at least one rule in that scope matches. When rules are disabled for that scope, transcoding proceeds according to the configured
transcodings/ per-media settings.
INFO
Google Drive and AWS S3 triggers are plan-gated features in the UI. Parameter contract remains valid for API-driven automation.