Skip to main content
Glama

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

TableJSON Schema
NameRequiredDescriptionDefault
outNoOptional output MP4 path. Defaults to the engine's out/ folder.
arollYesA-roll source: a local file path (e.g. C:/clips/talk.mp4) OR a public video URL.
brollNoOptional 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).
styleNoStyle 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.
promptNoOptional creative direction for the edit (mood, what to emphasise, pacing).
style_refNoOptional 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_modeNoB-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.
destinationNoWhere 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_styleNoCaption 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_formatNoAspect ratio. Default 9x16 (vertical for Reels/TikTok/Shorts).
explainer_index_idNoOptional 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_sessionNoOptional 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`).
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and excels: it discloses the local pipeline, transcription, subject-aware focal point detection, Ken Burns motion, audio mixing, automatic folder expansion, style_ref inference, and return path. It also mentions the hosted mode uploads to the user's account and the TWELVE_LABS_API_KEY requirement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but front-loaded with the core purpose, then systematically covers process, inputs, and output. Every sentence adds specific information (e.g., focal point, audio mix, destination modes). It could be slightly tightened, but it remains efficient for a 12-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's high complexity (12 parameters, 5 enums, multiple modes) and no output schema, the description is remarkably complete: it covers local vs hosted, style inference, B-roll sources, and the final MP4 path. It doesn't explain failure modes or environment prerequisites, but the core operational flow is fully described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaning beyond schema by explaining the A-roll/B-roll relationship, style_ref auto-inference ('so you don't have to describe them'), folder expansion, and that B-roll audio becomes a 'low faded bed'. This contextualizes parameters without duplicating their schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: 'Turn an A-roll talking-head/performance clip into a polished vertical (9:16) short by editing in B-roll cutaways.' It clearly distinguishes from siblings like assemble_image_ad or create_kinetic_text by describing the full video assembly workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use it (making a short from A-roll with B-roll, local pipeline, publishes via publish_now/schedule_post). It does not explicitly name alternatives or state when not to use, but the usage context is strong enough for an agent to choose it over siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AI-Product-Allen-Yu/viralspin-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server