Plan a product video from the feature map (free).
PLAN one product video for one feature of the project's feature map, or for a named release and the features it ships: a queued run writes capture beats into an ordinary capture-only draft trailer. Planning a product video turns one feature of the project's feature map, or a named release and its features, and the project's recorded captures into an ordinary draft trailer — each beat names its capture, the stretch of it it plays, a narrated line, whether the beat keeps its own sound, and its depth — and it is free: it answers at once, the run is polled until it is ready, and the result is an ordinary capture-only draft trailer approved with approve_trailer_plan. scope is { kind: 'feature', featureId } or { kind: 'release', name, featureIds } (2–8 distinct features); targetSeconds (10–360, default 30 for a feature and 60 for a release); aspectRatio (default 16:9 — every capture it plays must have it); title; notes (at most 2000 characters); music is score (the default: the draft is scored to picture, free — a sketch to the planned cut plays before anything renders, and the score is composed to the first cut and laid under it) or none (no music bed). A strict body: an unknown key is 400 validation_failed naming it. Refused before anything is stored: an unknown featureId is 400 validation_failed (details.features lists the feature map with name and availability), a planned feature is 400 (details.availability: 'planned'), a release outside 2–8 features is 400, a story project is 409 project_not_product, a product project whose product Bible is not complete or whose product coverage has not passed is 409 project_precondition_failed (details.stage), no ready capture in the shape is 409 product_video_no_captures (details.byAspect), a project where no shipped feature has a recording yet is 409 product_video_not_ready in its readiness step's own sentence (details.next names the verb that does it — connect_app first when the app is not connected), a feature with no recording of its own is 409 product_video_not_ready (details.recordedFeatures lists the ones that can be planned), and the 31th run in a UTC day is 403 usage_limit_reached. Answers 202 with the run at once (reused: false), or 200 with the live run an equal body already started (reused: true): one request never makes more than one plan. Poll GET /story-projects/{projectId}/product-video-plans/{runId} until ready. NOT metered and NOT confirmed. Requires Idempotency-Key. Scope: story:write.
Request
- Base URL: https://docs.sleeperhit.studio/api/v1
- URL: https://docs.sleeperhit.studio/api/v1/story-projects/{projectId}/product-video-plans
- Auth: HTTP bearer
Headers
Customer-generated stable identifier for safe retries of idempotent POST requests.
Request body
Response
The live run an equal body already started (reused: true).
Changes
No recorded changes to this operation across all 2 revisions of this API.