Make the film
make_studio_videoPress the film's one button: make everything its storyboard asks for that is not made yet (new or changed scenes, paid scene changes). A film with a voiceover is ONE press: the button (voice_with_film: true) records the voiceover and makes the film cut to it, priced in one quote. Only when the user asks to hear the read first, press button.voice_first instead (its own quote_hash and credits): that records ONLY the voiceover (voice_only: true) — poll until storyboard.layers.voice.take.url is set, let them listen, then (with their go-ahead on the new button price) press again to make the film cut to that read. The same applies when button.step is "voice". If they change a spoken line after it, the take goes stale and the button re-reads it first. An ad or reel shot picture-first gets its voiceover LAST: once the picture is done the button's step is "voice_after" — this press records the voiceover fitted to the finished scenes and puts it on the film by itself (poll until storyboard.layers.voice.take is set and ready again). The initial storyboard make and separately approved voice-after press spend Creative Credits against this connection's daily cap; requested automatic edits use an active persistent editing cap and report their own charge. NEVER call it without the user's explicit go-ahead on that price: in a chat with approval cards, proposing it puts that price on the card and the Approve is the go-ahead (do not also write the label as text); elsewhere, first show them get_studio_video button.label and button.lines. Send button.quote_hash and button.credits as expected_credit_cost. If the storyboard changed since, nothing is made or charged and the answer carries the new button to confirm again; a cost that is not the button's is refused. Optional budget_credits authorizes this film's persistent automatic-edit cap when none is active; it does not charge or reserve the unused amount, and it applies to requested paid edits after this press. If a cap is already active, this value must match it (use set_studio_video_edit_budget to change it). Requested edits within an active cap do not require another Make approval, including requested voice or music edits. It answers within about 40 seconds: started: true (with credits_charged: null) means the press is under way and did not finish answering in time — do NOT press again; poll get_studio_video. Afterwards poll get_studio_video until ready.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| user_goal | No | Optional: the user's goal behind this call, in one short sentence of plain words (e.g. "add a page so customers can book tables"). No names, emails or other personal details. | |
| project_id | Yes | Project id from create_motion_project. The bare project id or the library id ("studio-video:<uuid>" from list_creations / find_creation) both work. | |
| quote_hash | Yes | button.quote_hash from get_studio_video | |
| budget_credits | No | Persistent cap for requested automatic edits when no cap is active; unused credits are never charged | |
| expected_credit_cost | Yes | button.credits — the price the user agreed to |