Create a project
generate_scriptSPENDS the organization's wallet by default, behind the same gates the human passes (the org's quota, the daily free-action cap and the wallet): with production.auto_produce=true (the default) the whole production line runs without further calls. Creates a NEW project from an idea and launches it — the creation→edition crossing (a project is a conversation that starts from an idea). By default the same production line the human's button runs takes the piece to the final video: script → studio build → final render; publishing is not part of it. The script (first station) is written and charged BEFORE any wallet check; the studio build and the final render check the wallet and stop the line with waitingForFunds when it does not cover them — the script stays paid. With auto_produce=false the line stops after the script, so the piece can be edited before production. Returns the project id and the cast as pinned (cast.voice / cast.face with id and @handle); the project status reports progress until finalVideoUrl is set (typically 20-60 min). Requires write.
creative_referent: a referent id from the catalogue of formats. Premium formats (requiresSpendConfirmation) also need production.confirm_spend=true.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cast | No | Who narrates and who appears, in THREE ways that combine: (a) a name from the catalogue of voices and presenters, by `id` or `@handle` (`voice` / `face`) — a name that does not resolve is an error, not a silent fallback; (b) the wanted presenter DESCRIBED in `describe_face`, which casting resolves to the closest face of the catalogue — with enough detail (features, or two of gender/age/ethnicity) it can GENERATE a new one for this piece, which costs money and needs `production.confirm_spend=true`; (c) nothing, and casting decides by ear. `on_camera` puts the presenter on screen. A named `face` wins over `describe_face`. | |
| title | No | Optional project title (else derived from the idea). | |
| source | No | The creator's OWN material. `kind=script` + `respect=strict`: the piece narrates the text verbatim (word-level control from the start); `kind=content`: an article or notes the Director adapts (`respect` guided|adaptive). Without it the Director writes from `prompt_seed`. | |
| material | No | The creator's own uploaded files that belong to this piece (footage, photos, a recorded voice). Each item names one file of the personal library by its `assetId`: the id alone, or an object with `asset_id` and a `purpose` (what the file is for in the piece). The files are stored with the piece; the answer says what the piece does with them (`direction`), and they are not part of the price. While a file is still being verified, the `handle` of its upload is accepted in place of the id, and the request is answered as not ready; a file that is not in the caller's library is answered as not usable. | |
| production | No | The production settings; without them, the platform defaults apply. | |
| prompt_seed | No | The request, in the creator's words. A single idea is enough; a full brief is honored whole: title, thesis, structure and timing, how the piece opens and closes, what it may claim and from which sources, its look and sound, what to avoid, text that appears on screen. The writers and the direction receive it complete, up to 16000 characters; a longer request is rejected, and long reference material travels in `source`. Sources named by URL are read as primary material; when the request states that facts come only from them, nothing outside those sites is used. | |
| target_language | No | ISO-639-1 of the piece (en, es, pt, …). Default en. | |
| creative_referent | Yes | The format referent id from Vixdeo's catalogue of formats. |