Story Films

Write a chosen story film as its script.

Writing a story film's script turns the chosen pitch into a short screenplay the writer can edit — about 30 to 45 seconds, or the length the writer asks for up to 60: a person's own scenes, then 2 to 3 real moments of the product cut on the click, then back to their life — and each product moment uses a recording of the product the project already has when one fits, or is listed plainly as a recording still to make. One screenplay pass (the model call is booked to the ledger like a pitch; nothing else is charged): the script is saved as a Writers Lab screenplay in this project — parsed and analysed like any upload, so the table read, cast and film read it — and the story is stored scripted with its script and its product moments as captureRequests. Every product moment is an INSERT scene carrying a [[capture:<id>]] note (Fountain notes are never read aloud); nobody speaks on camera inside one. A draft that breaks those rules is written once more with the problems named, then refused 422 artifact_generation_failed with nothing saved. The body is empty, or { screenView?, seconds? } — the writer's view of every product moment's screen (full-screen, over-the-shoulder or hands-then-full-screen; empty, Slug chooses each moment's) and how long the film runs (a whole number of seconds, 30 to 60; empty, the usual 30-45, and the script is held to that length's scenes and words); anything else, or another field, is 400 validation_failed naming it. A product project not ready for a story film (the app not connected or signed in to, or no shipped feature) is 409 product_video_not_ready in that step's own sentence, with details.next its verb, before any screenplay call. A film that already has its script is 409 script_state_invalid unless seconds asks for another length: then a new film of the same pitch is written beside it at that length, keeping the written one (the answer names the new storyId); a project that cannot take a new screenplay yet is 409 project_precondition_failed. Requires Idempotency-Key. Scope: story:write.

post/story-projects/{projectId}/story-films/{storyId}/script

Request

  • Base URL: https://docs.sleeperhit.studio/api/v1
  • URL: https://docs.sleeperhit.studio/api/v1/story-projects/{projectId}/story-films/{storyId}/script
  • Auth: HTTP bearer

Headers

Idempotency-Keystring required

Customer-generated stable identifier for safe retries of idempotent POST requests.

Request body

screenView'full-screen' | 'hands-then-full-screen' | 'over-the-shoulder'
secondsinteger

How long the film runs, whole seconds; the script is written to that length and its cut is planned at it.

Response

The script, every product moment with the recording it uses (or null: a recording to make), and the recordings a moment may swap to.

projectIdstring required
storyIdstring required
status'pitched' | 'scripted' required
needsRecordingstring[] required

The moments that still need a recording made.

notestring required

What happened and what is next, to read out.

Changes

No recorded changes to this operation across all 2 revisions of this API.