Shot sequence
Author a narrated motion-graphics video whose text and shapes appear exactly when the voiceover says them, with a brief, forced alignment and a render.
A shot sequence is a narrated motion-graphics video in which every piece of on-screen text, every shape and every image appears the moment the voiceover speaks its matching phrase. You, or an assistant, write a brief: the narration, its cues, and the scenes, shots and reveals. Nodaro aligns the recorded voiceover word by word and bakes every cue into an exact frame, so the timing is deterministic. The Video Director builds on this pipeline and writes the brief for you.
The pipeline
Voice the narration
Call generate_speech with the narration script. Read the audio URL from the job output. 30 credits with ElevenLabs v3.
Align the words
Call forced_alignment with the audio and the exact same script as transcript. Read output_data.alignment, a list of { word, start, end } in seconds. 30 credits.
Resolve the brief
Call resolve_shot_sequence with the brief, the audio URL and the alignment. It answers at once with the render-ready plan and any warnings. Free.
Render
Call render_shot_sequence with the plan. The job renders the MP4, which the card plays and your library keeps. 50 credits at 1920 by 1080.
Call start_video_director first: it returns the guide for writing the narration as cue phrases and building a good brief.
Write a brief
A brief has a narration, with its script and cues, and scenes that contain shots, which contain reveals. A cue is a phrase of the script. A reveal places an element when a cue is spoken.
{
"fps": 30, "width": 1920, "height": 1080, "backgroundColor": "#0b0b0f",
"narration": {
"script": "Ship faster. Nodaro turns your idea into video.",
"cues": [
{ "id": "c_ship", "text": "Ship faster" },
{ "id": "c_idea", "text": "your idea into video" }
]
},
"scenes": [
{
"id": "scene_hook",
"shots": [{
"id": "shot_1",
"reveals": [
{
"id": "rv_title",
"element": { "id": "t1", "type": "text", "text": "Ship faster", "fontFamily": "Inter", "fontSize": 120, "fontWeight": 900, "color": "#ffffff", "x": 200, "y": 450 },
"revealAt": { "kind": "cue", "cueId": "c_ship", "edge": "start" },
"enter": { "motion": "slide-up", "durationFrames": 12, "easing": "easeOut" }
}
]
}]
}
]
}Anchors
| Anchor | When the element appears |
|---|---|
{ "kind": "cue", "cueId": "…", "edge": "start" } | When the cue's phrase starts. Use "edge": "end" for when it ends, and offsetMs to nudge it. |
{ "kind": "frame", "frame": 0 } | At a fixed frame, for elements without narration, such as an intro logo or an outro |
For an element that must be visible on the thumbnail at frame 0, use "enter": { "motion": "none", "durationFrames": 0 }.
How long an element stays
An element leaves at the end of its scene's content. Set hold, the frames it stays after its entrance, and exit, a motion after the hold, to control how it leaves.
Rules that keep the timing exact
- Cues must match the script exactly, including spaces. Write the spoken form: "twenty twenty-six", not "2026", and "five dollars", not "$5".
- Scenes must not overlap in time. Each scene owns one continuous stretch of the narration. When two scenes' reveals overlap,
resolve_shot_sequencereturns422 scene_overlap. - Fonts come from the supported families, such as Inter, Roboto, Montserrat, Poppins, Playfair Display, Bebas Neue, Anton, Caveat, Roboto Mono and Fira Code. Rubik, Heebo, Cairo and Tajawal cover Hebrew and Arabic.
- Entrance motions are
fade,scale-up,wipe-in,slide-up,slide-down,slide-left,slide-rightandnone. - Exit motions are
fade,slide-up,slide-down,slide-left,slide-rightandnone.
A cue that cannot be found in the transcript falls back to proportional timing, and warnings says so.
Blueprints
A blueprint is a ready-made animated beat that you place with a blueprint reveal and fill with params. list_shot_shapes returns the catalog and get_shot_shape returns one blueprint's parameters with a worked example. Blueprints cost nothing on their own; the render price covers the whole video.
| Id | Roles | Default frames | What it does |
|---|---|---|---|
comparison-split | feature showcase | 180 | Two labeled panels slide in from opposite sides and hold with a divider; optional badges pop near the end. |
constellation-hub | hook, social proof | 180 | Labeled nodes spring into a ring around a center hub, then the shot resolves on the core. |
cta-morph-press | call to action | 150 | A button appears in the center, and a cursor slows in and presses it. |
cursor-ui-demo | feature showcase, product intro | 210 | A cursor drives your screenshots through clicks while the view follows each target. |
dataviz-countup | pain point | 240 | A big number counts up to a value with a label. |
device-surface-showcase | product intro, feature showcase | 240 | A device mockup holds while its screens cycle through your screenshots, with headlines in sync. |
grid-card-assemble | feature showcase, benefit, social proof | 180 | Text cards cascade into a grid. |
kinetic-type-beats | hook | 150 | One to four statement lines swap in; the last one pops on an accent. |
logo-assemble-lockup | product intro, branding | 180 | The letters of the brand word assemble into a centered lockup, with an optional tagline. |
overwhelm-surround | pain point | 210 | Tool cards assemble and chips scatter in, then demands close in from every side. |
spatial-pan-stations | hook, pain point | 240 | Labeled stations on one large canvas, visited by smooth camera pans with a callout at each stop. |
ticker-takeover | hook, branding | 180 | A typed lead-in with a cycling accent word, then the hero crashes in. |
titlecard-reveal | benefit, social proof | 120 | One clean title, with an optional subtitle, revealed with one restrained move and held. |
typewriter-reveal | hook, branding | 180 | Text types in letter by letter with a blinking caret; an optional sub-label fades up. |
waterfall-reveal | hook, feature showcase | 150 | The words of a line cut in one by one from left to right; an optional sub-label fades up. |
Default lengths are in frames at 30 fps. list_shot_shapes always returns the live catalog.
Brand tokens
A brief can carry brand tokens, with a palette, fonts and a logo, so every blueprint uses your colors and type. In a brief, the tokens must be the full object, not a preset id: copy a preset's tokens from list_brand_presets. The fields are the same as the Video Director's brand.
Frequently asked questions
Related
Video Director
Shot sequence and Video Director
Forced Alignment
Render Video
Last updated on
Film Director
The Film Director skill has Claude direct a film in 10 approved stages, from script to final cut, and builds an editable workflow on your canvas as you talk.
Studio productions
Direct a film from an AI assistant as a studio production, validate the plan for free, generate frames and motion with quotes, and keep editing in Studio.