create_video_assembly
Turn talking-head A-roll into a vertical short by auto-matching B-roll cutaways, transcribing speech, and rendering with motion and voiceover.
Instructions
Turn an A-roll talking-head/performance clip into a polished vertical (9:16) short by editing in B-roll cutaways. Runs a LOCAL pipeline: transcribes the A-roll, finds each B-roll's focal point (face/subject-aware so nothing is cropped off), matches B-roll to what's being said, and renders with Ken Burns motion + the speaker's voice as the soundtrack (B-roll clip audio is mixed in as a low faded bed). Accepts LOCAL file paths OR public URLs for both A-roll and B-roll, and a B-roll FOLDER is expanded automatically. Pass style_ref (a reference video) to AUTO-INFER the editing style from it — captions, hook headline, keyword pops, pace, and aspect ratio — so you don't have to describe them. Returns the path to the finished MP4, which you can then publish with publish_now / schedule_post.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| out | No | Optional output MP4 path. Defaults to the engine's out/ folder. | |
| aroll | Yes | A-roll source: a local file path (e.g. C:/clips/talk.mp4) OR a public video URL. | |
| broll | No | Optional B-roll sources: local file paths, a local FOLDER (expanded to its images/videos), and/or public URLs. Mix freely. Omit for an A-roll-only edit (just motion, no cutaways). | |
| style | No | Style anchor for AI-generated B-roll (required when broll_mode='ai_generated'). sketchbook = hand-drawn ink on graph paper; cinematic_minimal = flat-lay dark surface, warm tungsten lamp; dark_studio = matte black workspace, designer aesthetic; vibrant_illustrated = bold pop-art flat illustration. | |
| prompt | No | Optional creative direction for the edit (mood, what to emphasise, pacing). | |
| style_ref | No | Optional reference video (local path or URL). The tool watches it and infers the edit style — captions on/off + style, hook headline, keyword pops, cut pace, and aspect ratio — and applies it automatically. Overrides output_format when set. | |
| broll_mode | No | B-roll source mode. 'user_provided' (default) = use local files or Google Photos. 'ai_generated' = AI reads the transcript and generates stylized cinematic B-roll images — no local footage needed. Requires the 'style' param. | |
| destination | No | Where the project lives. 'local' (default) = render on this machine, return an MP4 path (no upload; reads local disk). 'hosted' = create a Swap & Refine project on the user's ViralSpin account: local A-roll/B-roll are uploaded, the project opens in the web editor, and follow-up swap_clip/suggest_clips (with its job_id) drive that same project. Use 'hosted' when the user wants to refine in the browser or keep the project in their account. | |
| caption_style | No | Caption style. Default 'auto' = AI picks the best style from the transcript. default = bold white spring pop-in. hormozi = word-by-word yellow highlight (high-energy talking-head). glow_neon = neon cyan pulsing text (dark aesthetic, music, gaming). minimalist = lowercase thin font fade-in (calm, educational). whiteboard = left-to-right text reveal (explainers, tutorials). After rendering, change it instantly with swap_caption_style. | |
| output_format | No | Aspect ratio. Default 9x16 (vertical for Reels/TikTok/Shorts). | |
| explainer_index_id | No | Optional Twelve Labs index ID returned by index_explainer_sources. When set, long-form videos (>2 min) in the broll folder are searched semantically instead of being clipped from their start. Requires TWELVE_LABS_API_KEY in the MCP env. | |
| google_picker_session | No | Optional sessionId from start_photo_picker. If set, the photos/clips you picked in Google Photos are ingested as B-roll (in addition to any `broll`). |