Render a story episode (the final file)
render_story_videoRENDERS an AI Video Story episode into its final delivered file (stage 3 of 3), after the scene videos are done. It is composed SERVER-side from the stored episode (scenes, captions, music, title card, watermark policy); you pass only the episode id. WHEN: get_video shows succeeded or story.stage: "ready_to_render" (an episode edited in the web editor renders with those edits; a later render replaces the file). AFTER: the answer carries render_id and story.stage: "rendering". Wait with wait_for_generation or read get_video: stage: "rendered" means story.render.url is the FINAL file, and THAT is the url to give the user with one line (its length) and one clause that captions and deeper edits live in the aicut web editor. story.render.status: "failed" means it failed and was refunded: ask before rendering again. NEVER hand out the episode url before rendered: at ready_to_render it is only the raw stitched preview. A repeat during a render answers the SAME render_id with coalesced: true: not a failure. COST: per rendered minute at the platform render rate, from the episode's own duration. estimate_only: true works only once the episode is renderable (before then it refuses and names the stage); earlier, give pricing.render_tokens_per_minute (series' full list_series entry) as a rate or a tilde figure, never as the price. THE GO THIS ONE NEEDS: a render is its own charge and ask; approving the scene videos or saying the episode looks good is not a go to render. The user must name rendering or the final file, and a bare 'yes' counts only as the direct answer to your priced render ask. SPENDS TOKENS: price with estimate_only: true, ask in the SAME message as the price, and wait for a go that names THIS purchase (SPENDING RULES, this server's instructions). IDEMPOTENCY: a reused idempotency_key REPLAYS the first job whatever the settings: never reuse one for a new generation (this server's instructions).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| video_id | Yes | The episode's job id from `generate_story_video`. | |
| estimate_only | No | Price only; creates nothing. | |
| idempotency_key | No | Retry-safety key (IDEMPOTENCY). |