submit_export
Export the timeline as video, audio, subtitles, NLE XML, or an archive (NLE XML zipped with the timeline's media so clips relink automatically). Video/audio support frame- or seconds-based partial ranges; subtitles support frame ranges. XML and archive exports always include the whole timeline. Prefer browser execution, renderMode=local (default). Name the full timelineId explicitly. External callers must also name projectId; the internal agent uses its authorized run project. A signed-in supported browser can render this scope from any page, including Home. Keep that browser open through delivery; navigation does not retarget the job. For video/audio, renderMode=cloud remains available when no local renderer is available or cloud is explicitly chosen; Desktop is optional and is not a renderMode of this tool. Follow structured recovery details: busy jobs wait, unknown acknowledgements must be checked before resubmitting, and media errors must be resolved. A failed local call does not silently create a cloud job. To self-check, use preview_timeline for frames and format=audio for sound; never export full video just to check. Subtitles/XML complete synchronously with a download URL/path. Video/audio/archive return a renderId; use track_export with it when the status is not terminal and the user asks for status, or this turn genuinely needs to wait for completion.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"timelineId": "<timelineId>"
},
"name": "submit_export"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fps | No | Video output frame rate. Omit to match the timeline fps; supported values are 24, 25, 30, 50, and 60. | |
| name | No | File name without extension. A local video/audio export appends a short export id and the extension; the result's expectedFilename is the exact name it downloads as. | |
| codec | No | Output codec. Video supports "h264" (MP4, default) or "vp8" (WebM). Audio exports are "mp3". | |
| format | No | "video" (default), "audio", "subtitles", "xml", or "archive". "archive" is the NLE XML bundled with the timeline's media in a zip; it runs in the selected signed-in browser independent of the visible page, so prefer it only when they asked for a self-contained/relink-ready export. Use bundleMotionGraphics/bundleChatcutMedia/bundleUserUploads to choose what goes in. | |
| delivery | No | Local video/audio only. "browser" (the usual default) downloads the finished file in the rendering browser. "host" uploads it instead and track_export returns delivery.downloadUrl for you to fetch with your own shell and send to the user; use it when your host runs the browser elsewhere or must attach the file to the conversation. Omit to use this host's default. Cloud renders already return a download URL. | |
| nleFormat | No | NLE XML format for format="xml" or "archive". Defaults to "fcp_xml" (Premiere). Use "fcp_xml_resolve" for DaVinci Resolve. | |
| projectId | No | Full project UUID. Required for external browser work; internal agents may omit. Execution/explicit-timeline calls never change later calls' target. | |
| endSeconds | No | Legacy seconds-based end; prefer endFrameExclusive. | |
| renderMode | No | Video/audio/archive only. "local" is the default browser execution; keep a signed-in supported browser open; any project or Home may remain visible. For video/audio, "cloud" uses the existing AWS Lambda renderer when no local renderer is available or cloud is explicitly chosen. No Desktop attempt is required. Review the real cloud quote first; only a credit charge needs explicit confirmation. Cloud archive export is unavailable from this tool; the legacy editor archive workflow is separate. Do not duplicate an existing or uncertain local job. | |
| resolution | No | Video resolution. Defaults to "1080p". "4K" requires local rendering in a capable browser; cloud supports up to "1080p". | |
| startFrame | No | Inclusive start frame for a partial export. | |
| timelineId | Yes | Required full timeline UUID. Export targets only this call and never switches the visible timeline. | |
| cloudQuoteId | No | Cloud only. The ID returned by the server's cloud export quote. Show its duration, free allowance and credits before retrying; free quotes need no extra confirmation. | |
| startSeconds | No | Legacy seconds-based start; prefer startFrame. | |
| idempotencyKey | No | Stable key for this export request. Reuse only with identical parameters when checking a lost acknowledgement. | |
| subtitleFormat | No | Subtitle format for format="subtitles". Defaults to "srt". | |
| browserProfileId | No | Optional browser profile override. Omit to select automatically; do not ask the user to choose. | |
| bundleUserUploads | No | Archive only. Also put the clips the user uploaded from their own disk in the zip. Defaults to false, which keeps the download small and names those clips by the user's original files so their NLE relinks locally. Set true for a self-contained bundle of the captured source bytes available to the browser. Local archives do not silently create compressed proxies or upload local files. NLE-incompatible source containers return needs_input for explicit conversion or relinking. | |
| endFrameExclusive | No | Exclusive end frame for a partial export. | |
| bundleChatcutMedia | No | Archive only. Put the clips that exist only inside ChatCut in the zip — generated voice-overs and music, sound-library picks, denoise output, screen recordings, pasted screenshots. Defaults to true. Leaving these out gives the user a timeline they cannot restore, so only set false if they asked for it. | |
| confirmCloudCharge | No | Cloud only. Set true only after the user explicitly confirms the exact quoted credit charge. Never infer consent from a general export request. | |
| confirmFontFallback | No | Required to be true when motion-graphic items reference fonts the cloud renderer cannot load. The first call without this flag returns the unsupported font list; relay that to the user, and only retry with confirmFontFallback=true after they explicitly accept the fallback. Ignored when there are no font issues. | |
| bundleMotionGraphics | No | Archive only. Defaults to true. A local archive containing motion graphics returns needs_input because browser-local ProRes 4444 rendering is unavailable. Set false only when the user agrees to omit motion graphics. Preparing ProRes through the separate legacy editor archive workflow requires explicit cloud rendering; this tool does not start that workflow. | |
| motionGraphicRenderKeys | No | Advanced: include already-rendered motion graphic keys in an XML export. |