Assemble video
assemble_videoJoin clips the account already has into ONE finished video, in the order given, optionally over a voiceover (narrationUrl) and a music bed, which become separate tracks with the clips ducked under the voice, and with burned-in captions. The bed is a track from the library (musicUrl) or one composed for this cut from a description (musicPrompt), never both. One clip plus a track is how to put music or narration under a single video: "add music to my video" is clipUrls [that video] with a musicPrompt, and no pipeline to build. Every url must come from list_assets or a run's outputs in get_run. Stills hold 3 seconds each, or stretch so a longer voiceover plays in full; lengthSec in the result is how long the cut will run, and any warning in it should be passed on. Renders in the background: poll get_run with the returned pipelineId and runId. Free once the account has bought credits (the result carries charged: false), so never ask a paying account to top up before assembling; charged on a trial. Needs the pipelines:run and pipelines:write scopes.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | What to call the render, e.g. "Beach trip cut". | |
| captions | No | Transcribe the finished edit and burn captions in. Only worth it when the clips or narration contain speech. | |
| clipUrls | Yes | Video or image urls in play order: two or more, or exactly one when narrationUrl, musicUrl or musicPrompt is set. | |
| musicUrl | No | Music bed under the whole edit, beneath the clips' own sound and any narration: an audio url from list_assets. Leave it out when passing musicPrompt. | |
| transition | No | How each shot hands off to the next. Defaults to a hard cut. | |
| musicPrompt | No | Compose the music bed for this cut instead of taking one from the library: genre, mood, tempo and instruments, e.g. "calm cinematic ambient, soft piano, gentle pads, no vocals". It sits and ducks exactly like a musicUrl bed and takes the same fades. Written by the Audio Generation node's default model (get_node_type music-gen), or its full-song model when the cut runs past 30 seconds; the result names the model as composedMusic. Leave it out when passing musicUrl. | |
| orientation | No | "vertical" is 1080x1920 for Shorts, Reels and TikTok, "horizontal" is 1920x1080, "match_first" (the default) keeps the first clip's shape. Shots that do not fill the frame are letterboxed, never cropped. | |
| narrationUrl | No | Voiceover laid over the whole edit. Everything else ducks under it. | |
| audioFadeInSec | No | Fade the music bed (or the only track) up over this many seconds at the start. Applies to a composed bed too. | |
| audioFadeOutSec | No | Fade the music bed (or the only track) down over this many seconds at the end; 2 to 4 reads as a deliberate ending. Narration is never faded when there is a bed. |