This is the cluster where separate assets become a single video, and it is the one with the most agent tools behind it because 'assemble' covers several unrelated operations: sequencing clips end to end, layering one over another, cutting away to b-roll, and stacking text and audio on top of all of it.
The order matters more here than anywhere else. Structure comes first, layers second, and the opening three seconds are their own job — a hook is not the beginning of the edit, it is a separate decision bolted to the front of a video that already works without it.
The order to run these in
These jobs are cheap in the right sequence and expensive in the wrong one. This is the order that avoids re-rendering work you have already paid for.
1. Sequence before you decorate
Get the clips into the right order and length first. Every layer added to a sequence you later reorder has to be placed again.
How to do it →2. Layer what goes on top
Picture-in-picture, reaction insets and b-roll cutaways all sit above the base sequence, so the base has to be final before they land.
How to do it →3. Bolt the hook onto the front
Write the first three seconds last, once you know what the video actually delivers. A hook written first tends to promise something the edit does not.
How to do it →4. Take the thumbnail out of the edit
Pull the still from the finished video so the thumbnail matches the content — a promise the video keeps, from a frame it actually contains.
How to do it →
Every job in this cluster
Each one names the real Versely agent tool that performs it, so you can see which jobs share a mechanism and which are genuinely different work.
Merge Multiple Videos Into One
Several clips in. One finished video out.
merge_movie_scenesCombine Photos and Clips Into One Video
Photos and footage, stitched into one timeline.
compose_video_with_overlayAdd Picture-in-Picture to a Video
Reaction footage, corner-mounted on your main clip.
create_ugc_video_overlayEdit a Video With Music and Captions in One Pass
Describe the whole edit. Get one finished video back.
edit_videoAdd B-Roll to a Video
Filler footage that actually fits your video.
get_available_brollGenerate a Video Thumbnail
The best moment, grabbed as a still.
extract_video_framesAdd a Title Card to a Video
A clean title moment before the action starts.
add_video_captionsAdd Reaction Clips to a Video
Genuine reaction footage, dropped into your cut.
get_available_brollAdd a Hook to Your Video
The first second decides if anyone keeps watching.
list_hooksTurn a Slideshow Into a Video
The carousel you already made, republished as a reel.
convert_slideshow_to_videoSave a Video Edit as a Reusable Draft
Build the edit once. Swap the footage every week.
save_editor_projectThe agent tools behind them
19 tools from Versely's real agent surface do all 11 of these jobs. Ask for the outcome in plain English and the agent picks the tool.
merge_movie_scenes
Merge multiple video clips into a single movie. Use after generating individual scene videos to combine them into one final video.
compose_video_with_overlay
MERGE/STITCH multiple media items (images, videos, or any mix) into a single final video, with an OPTIONAL picture-in-picture overlay video on top. PRIMARY use cases: (A) Merge user-uploaded images + an existing video into one video (e.g. user uploads photos and wants them stitched onto a clip). (B) Merge multiple videos with optional per-clip range trims (e.g. clip A seconds 3-8, then clip B seconds 0-5, then clip C). (C) Stitch a series of images each held on screen for a custom duration (slideshow-style). (D) Any of the above with a corner picture-in-picture overlay video composited on top. Each base item is { kind: 'image' | 'video', url, duration_sec?, start_sec?, end_sec? }. For 'image' items: duration_sec is REQUIRED (seconds the image stays on screen). start_sec / end_sec are ignored. For 'video' items you may EITHER pass duration_sec (trim from start to N seconds) OR pass start_sec + end_sec (keep the [start_sec, end_sec) range — both must be set together). If neither is set the video plays end-to-end. Items are concatenated in the array order. Omit overlay_video_url to just stitch the base. Use this INSTEAD of create_ugc_video_overlay whenever the base is more than a single video, when combining images with videos, or when you need per-clip range trims as part of the merge.
create_ugc_video_overlay
Overlay a video (e.g., talking head, reaction clip) on top of another video to create UGC-style content.
edit_video
Agent-driven EDL render via the Versely editor pipeline (POST /features/editor-render). Stitch, trim, speed-change, caption, overlay, and mix user media (workspace/generation HTTPS URLs) into ONE final video. Prefer this over chaining cut_video + attach_audio + add_*_captions when the user wants a multi-clip assembly in a single step. Billing: preview:true is free 480p (per-user cooldown); final export (preview:false, default) charges the normal single editor_export price. Prefer preview:true while the user is iterating; only final-render after confirmation. Clips must be HTTPS URLs (file:// and other schemes rejected). Returns { video_url, credits_charged, preview_notes } or a 402-style insufficient-credits error.
get_available_broll
Get B-Roll clips the user can use in their content — includes free clips (always available) and any purchased clips. Use when user wants to add reaction hooks, UGC-style overlays, or B-Roll footage to their videos/content. Only returns clips the user owns (free or purchased). Does NOT search the full B-Roll marketplace.
search_broll
Search the B-Roll marketplace for stock UGC clips. Returns clips that can be purchased and used in content. Use when the user needs specific reaction clips, talking head footage, or UGC content beyond the free clips.
extract_video_frames
Extract one or more still frames from a video as image URLs. Useful for grabbing a thumbnail, or chaining a frame into generate_image_from_image / generate_video_from_image as a reference/first frame.
add_video_captions
Burn a fixed TEXT OVERLAY onto a standalone video — a hook line, headline, badge, CTA, quote or branded label that you supply. This is NOT a subtitle tool: it does not transcribe speech. For spoken-word subtitles use add_veed_captions. Call list_caption_fonts first when the user wants a specific font.
list_hooks
Browse the AI Hooks studio catalog: curated premade examples (always-available video_url, free), free reaction B-roll (GET /broll/free), and premium marketplace hooks (GET /broll/search). Returns id, title, preview/video_url, kind (premade|free|premium), optional price for premium, and category/vibe. Applying a hook to a user's video is client-side — feed video_url into edit_video / compose_video_with_overlay / create_ugc_video_overlay (premium preview URLs may be watermarks; purchase via the app marketplace if a full unlock is needed). Use when the user wants viral hooks, reaction openers, UGC scroll-stoppers, or fitness/product hook clips.
get_hook
Get detail for one hook by id (premade example, free B-roll, or premium marketplace via GET /broll/:id). Returns title, video_url/preview_url, kind, price when premium. Use after list_hooks when the user picks a specific hook.
create_hook_pack
One-click branded Hook Pack — plans N DISTINCT viral UGC hooks for a brand (OpenRouter), charges once, and submits 1080p portrait jobs. Rendered with Vidu Q3 T2V. On completion each hook_line is burned as BIG TikTok-style text. Use when the user wants a pack/batch of branded scroll-stopping hooks, AI Hooks studio pack, or 'give me 3/5/10 hooks for my brand'.
convert_slideshow_to_video
Convert a slideshow into a video with transitions and optional audio. Use after creating a slideshow when user wants a video/reel version. The video is uploaded to cloud storage and the URL is returned.
get_slideshow
MANDATORY TOOL for displaying a slideshow to the user. Calling this is the ONLY way the slideshow-card UI (with thumbnails) appears in the chat — describing the slideshow in text does NOT show the visual card. You MUST call this tool (not just describe in text) whenever the user asks to see, show, open, view, preview, display, pull up, or edit an existing slideshow — including phrases like 'show me my slideshow', 'show it to me', 'let me see it', 'pull up the last one', 'what's in my slideshow', 'the one I just made', 'add text to slide 2', 'edit the overlays'. Do NOT answer these requests from memory or conversation history. ALWAYS fetch fresh state with this tool. If slideshow_id is omitted, returns the user's most recently created slideshow. Also call this before add_text_overlay, convert_slideshow_to_video, remove_slideshow_slide, replace_slideshow_slide, or reorder_slideshow_slides when the user references an existing slideshow without giving you an id.
generate_music
Generate music or song audio from a text prompt. Use this when the user asks for music, songs, background scores or melodies.
generate_speech
Generate speech audio from text (Text-to-Speech). Use when the user needs a voiceover, narration, or spoken audio for their content. Perfect for UGC workflows, ad scripts, and podcast clips. Use `emotion` and/or `style_instructions` to make the delivery expressive and match the content's mood instead of defaulting to a flat read — pick whichever the target model supports.
add_text_overlay
Add text overlays (captions, titles, quotes) to slideshow images. Use after creating a slideshow when the user wants text on the images. You can send 1 overlay to apply the same text/style to ALL images, or N overlays (matching image count) for different text per slide. The system auto-expands a single overlay to all images.
save_editor_project
Create or update a cloud editor draft. Omit id to create (POST /editor-projects); pass id to update (PUT /editor-projects/:id). Body fields: title, edl (required — full editor project state JSON object), duration_sec, clip_count, optional thumbnail_url. Use after the agent modifies a draft EDL, or to snapshot a composition before rendering with edit_video.
get_editor_project
Load one editor cloud draft by id, including the full `edl` field — the editor's project state (timeline clips, trims, texts, music, captions, etc.) that the agent can read and modify. After editing the EDL in discussion, either save_editor_project to persist or pass clips/urls into edit_video to render.
list_editor_projects
List the user's cloud video-editor drafts (metadata only: id, title, duration_sec, clip_count, thumbnail_url, updated_at — no full EDL). Newest first. Use before opening or discussing a saved editor project.
What these jobs cost
Every job here bills in credits. These are the scenarios whose formulas govern the arithmetic.
What does editing a video cost if I keep changing it?
charges per finished export, so iteration is free and the count is the whole bill
Flat per callWhat does a batch of 100 AI product images cost?
charges one fixed price per call, so the image's size and shape are free
Questions about this cluster
Do clips need to match before they're merged?+
They need a shared aspect ratio, or the merge letterboxes whichever clip disagrees. Reformat every source to the destination ratio before assembling — it is the single most common cause of black bars appearing halfway through a finished video.
Where does the hook come from?+
Versely keeps a library of hook lines and hook packs the agent can pull from, so the opening is a selection rather than a blank page. The line still has to match what the video delivers — a hook that oversells is worse than no hook.
Is b-roll the same as picture-in-picture?+
No. B-roll replaces the main picture for a few seconds while the audio continues; picture-in-picture keeps both on screen at once. Cutaways hide edits and add context; insets show reaction. Choosing the wrong one is why some edits feel cluttered and others feel empty.
Make the material first
AI Movie Maker
One prompt. A finished short film.
AI Video Generator
Text-to-video, image-to-video, and story-to-video in one place.
AI Slideshow Maker
Photos in. Scroll-stopping slideshow out.
AI UGC Video Generator
UGC ads at the speed and price of a prompt.
AI B-Roll Generator
No more generic stock. Every clip made for your script.
Text to Image Generator
One prompt. Every image model. One studio.
The rest of the pipeline
Captions & On-Screen Text
The last thing you add and the first thing anyone reads.
Audio, Voice & Dubbing
The biggest cluster on the surface, and the easiest to do in the wrong order.
Aspect Ratio & Resize
Six jobs, one decision: what leaves the frame.
Trim & Cleanup
Do these before you pay to render anything.
Upscale & Extend
The only jobs that add something the file never had.
Ask the agent for it in plain English
The all-in-one AI studio for creators. 60+ models for video, image, voice, music and lipsync in a single app.