Movie settings
Top-level Automotion movie document: output size, fps, quality, draft mode, variables and scenes.
The movie document is the single source of truth for a render: the JSON you send to the API is exactly what gets rendered — no hidden fields, no server-side mutations. All fields below are validated by the schema; unknown keys are rejected.
Properties
| Property | Type | Default | Description |
|---|---|---|---|
schema * | "v1" | — | Movie Schema version tag. Documents keep rendering under the version they declare. |
width * | integer (16–4096, even) | — | Output width in pixels (even integer, 16–4096). Use normalizeMovie() to derive it from a preset. |
height * | integer (16–4096, even) | — | Output height in pixels (even integer, 16–4096). Use normalizeMovie() to derive it from a preset. |
fps | 24 | 25 | 30 | 60 | 30 | Frames per second of the output video: 24, 25, 30, or 60. |
quality | "low" | "medium" | "high" | "high" | Encoding quality of the output video; higher quality means larger files. |
format | "mp4" | "mp4" | Output container format. MVP supports mp4 only. |
draft | boolean | false | Render a fast, low-resolution, watermarked preview instead of final output. |
variables | object | — | Declared template variables, keyed by name. Reference them as {{name}} inside any string value. |
elements | array of (object | object | object | object | object | object | object) | — | Movie-level overlay elements rendered across all scenes, e.g. a watermark or background music. |
scenes * | object[] | — | Scenes played sequentially, in order. |
variables object
Declaration of one template variable.
| Property | Type | Default | Description |
|---|---|---|---|
type * | "string" | "number" | "boolean" | "url" | "color" | "enum" | — | Declared variable type; supplied values are validated against it at render time. |
default | unknown | — | Fallback value used when the caller does not supply this variable. |
description | string (non-empty) | — | Human-readable explanation shown in docs and template UIs. |
values | array of (string (non-empty)) | — | Allowed values. Required when type is "enum"; not allowed otherwise. |
scenes object
One scene of the movie. Scenes play sequentially in array order.
| Property | Type | Default | Description |
|---|---|---|---|
id * | string (non-empty) | — | Stable identifier, unique across the whole movie. Used by editor selection sync and error paths. |
duration | number (> 0) | "longest" | "voice" | — | Scene duration: seconds, or "longest" (longest element) or "voice" (voiceover length). Defaults to "longest". |
background | string (non-empty) | object | — | Scene background: a CSS color string, or a media reference object. |
transition | object | — | Transition from the previous scene into this one. |
elements * | array of (object | object | object | object | object | object | object) | — | Elements rendered in this scene. |
Sizing by preset
Instead of explicit width/height you can size the movie with a preset (plus an optional resolution, default "1080p"). Provide either the preset pair or explicit dimensions — never both.
preset | resolution | Output size |
|---|---|---|
"9:16" | "1080p" | 1080×1920 |
"9:16" | "720p" | 720×1280 |
"1:1" | "1080p" | 1080×1080 |
"1:1" | "720p" | 720×720 |
"16:9" | "1080p" | 1920×1080 |
"16:9" | "720p" | 1280×720 |
Example
A complete movie: portrait 1080×1920, two scenes, a fade transition:
See also: Scene settings, the seven element types, and Variables.