Fire a story episode (generate the scene videos)
fire_story_videoFIRES a parked AI Video Story episode (stage 2 of 3): generates every kept scene's VIDEO from its reviewed picture. The paid step after review; nothing renders yet. WHEN: story.stage is frames_review, the user has looked at the pictures and any redraws are done; cut scenes first with remove_story_scene (a removed scene's video is never generated or charged). Always estimate_only: true first: it quotes the REMAINING price for exactly the kept scenes and carries scene_count and duration_seconds, so say '6 T for the 4 remaining scenes, 20 seconds', not a bare 6 T; after a cut, re-quote and say both the new price and count. THE GO THIS ONE NEEDS: FIRING IS IRREVERSIBLE AND IT IS THE LARGEST SINGLE CHARGE IN THE EPISODE. It cannot be undone or refunded, so a BARE 'yes' NEVER FIRES: the user's go must NAME firing ('fire it', 'generate the scene videos'), in reply to an ask about firing alone. A STANDING GO NEVER COVERS THE FIRE, not even one that priced it, and nothing the user asked for earlier may be outstanding. NONE OF THESE IS A TRIGGER TO FIRE, however clearly the user said them: cutting or keeping a scene (remove_story_scene), asking for a redraw (regenerate_story_frame), liking or approving a picture, a question about price, timing or what happens next, a complaint. When in doubt, do not fire: ask and restate the price. THE CARD: this call already put the aicut episode card in front of the user and it follows the scenes stage itself: do NOT poll. On fired: true (story.stage generating_scenes) say one line (usually under ten minutes, sometimes longer; they can close the chat; the episode will be in their assets) and STOP. The card gives up after about twenty minutes: the user's cue to ask, yours to make ONE get_video read. At ready_to_render finish with render_story_video. TIMING (measured): the scene videos usually finish in under ten minutes and occasionally take much longer. Never promise a finish time. COST: the kept scenes' videos, per scene; the frames were charged at create. auto_render: true arms the final render to start by itself when the scenes finish (the quote then adds render_estimated_tokens): pass it only when the user approved the render charge too. FIRE ONCE: THIS DOOR IGNORES idempotency_key; the guard is the consumed gate. A repeat, even a retry after a timeout, answers 409 already_fired, which means the first fire WORKED: treat it as success. If a fire's outcome is unknown, read get_video and fire again only while story.stage is still frames_review. A 409 scenes_price_unavailable or scenes_price_exceeds_quote means this episode cannot be fired from here: finish it in the web editor, do not retry. 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).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| video_id | Yes | The episode's job id from `generate_story_video`. | |
| auto_render | No | Arm the final render: it starts by itself when the scenes finish and charges then (the quote adds `render_estimated_tokens`). Only with the user's approval of that charge. | |
| estimate_only | No | Price only; creates nothing. | |
| idempotency_key | No | Ignored by this door: a second fire is refused `already_fired`. |