Guides
Faceless short with voiceover and subtitles
A vertical short: AI background, Polly voiceover, word-timed subtitles — all from one JSON document.
The classic automated-content format: a 9:16 short where a synthetic voice reads your script over a background, with word-by-word highlighted captions. No camera, no editor — one JSON document.
The recipe
Three ingredients per scene:
- a
voiceelement — the script text plus avoiceIdfrom the voice catalog; duration: "voice"on the scene, so it lasts exactly as long as the speech;- a
subtitleselement withsource: "auto"— cues and word timings are derived from the generated speech automatically (word-timed, with a highlight color).
Full document
Why this works
duration: "voice"removes all timing math — each scene ends when its narration does.- AI backgrounds (
generate) are cached by prompt + seed: re-rendering the same document doesn't consume credits. Change theseedto get a different image for the same prompt. - Movie-level audio (the
elementsarray at the top level) spans every scene — background music in one place, faded in and out. - Auto subtitles are timed from the actual speech marks, not estimates, so the word highlight lands exactly on the spoken word.
Render it
Send it like any other render (see the quickstart):
where request.json is { "movie": <the document above> }.
Variations
- Different voice per scene — any
voiceIdfrom the catalog, including non-English voices (setlanguageto match). - Line-by-line captions instead of word highlighting:
"mode": "line". - Your own footage instead of AI images: swap the
imageelements for avideoelement withmute: true. - Make it data-driven: replace the script strings with
{{variables}}and a template — see the data-driven guide.