Video Analysis
Break a video, or a link to a YouTube, TikTok, Instagram, X or Facebook post, of up to 10 minutes into scenes of 8 seconds or less, with prompt-ready visuals.
Available on Nodaro Cloud
The Video Analysis node breaks a video into a scene-by-scene description that an AI model can recreate. It cuts the video into scenes of 8 seconds or less, one generation each, and describes every scene's picture, framing, camera and sound. Recurring people, objects and places become reusable entity slots, so you can recast the video with your own characters, objects and locations.
On a self-hosted install, the node shows a NODARO mark and runs through your Nodaro Cloud connection, billed to the connected account. Without a connection, the node shows a CONNECT NODARO button and does not run.
When to use it
- You want to turn a reference video into a shot-by-shot plan to recreate it with AI.
- You want to extract the cast of a video, to shoot it again with your own characters, objects and locations.
- You want a prompt-ready description of each scene to feed image and video nodes.
- You want each scene's sound layers, the dialogue plus descriptions of the music and sound effects, for a matching soundtrack.
Quick start
Add the node
Press Tab on the canvas and choose Video › Analyze › Video Analysis.
Give it a video
Connect a video node, such as Upload Video, to the Video input, or paste a link under YouTube URL in the settings panel. For a link, the panel shows the video's length, which sets the price.
Choose the quality
Choose an Analysis quality. Pro is the default. Optionally, write what matters most under Analysis focus (optional).
Run it and use the result
Click Run. Wire the Text output into a prompt, for example of Generate Video Pro, or the Scenes JSON output into a node that reads structured data.
Inputs
| Input | Accepts | What it does |
|---|---|---|
| Video | Video nodes, such as Upload Video, Video URL and Generate Video, and text nodes, such as Text and Generate Text - Any LLM | The video to analyze, or a link to it. Optional when YouTube URL is set. A connected video always wins over a connected link, and a connected link wins over YouTube URL. |
A link from a text node. The whole text must be one link and nothing else: a youtube.com or youtu.be link, or a link to one TikTok, Instagram, X or Facebook post. Text with other words around the link is ignored. If the node then has no other video or link, it refuses to run. The node cannot read the length of a link from a text node before the run starts, so its Run button shows the price of the 600-second step. The run itself is priced by the length it reads when it starts (see Credits). For an exact price before the run, use a Video URL node.
Outputs
| Output | What it carries |
|---|---|
| Scenes JSON | The full analysis as structured data: meta, look, slots and scenes. See What the analysis contains. |
| Text | The same analysis as plain text. Wire it into any prompt or text input without copying and pasting. |
Settings
| Setting | What it does |
|---|---|
| Analysis quality | Smart, Pro (the default), Fast, Mixed or Mixed (consistent). See Which quality to choose. |
| Result selection | Choose (the default) or Combine. The video is analyzed several times. Choose keeps the strongest pass as it is. Combine also adds details from the other passes after checking them against the footage. It is slightly slower and the most complete. Smart ignores this setting. |
| Cast variations — detect alternate looks per entity | Off by default. Also detects the different looks of each person or thing and the scenes where each look appears. See Appearance looks. |
| Translate to English | Two checkboxes, both off by default: Speech — what's said or sung and On-screen text — signs, captions, titles. See Output language. |
| YouTube URL | A youtube.com or youtu.be link to analyze when neither a video nor a link is connected to the Video input. |
| Analysis focus (optional) | Up to 2,000 characters on what the analysis should pay attention to, for example "product shots and on-screen text". |
| Pre & post text | Text added before and after the analysis focus at run time. See Prompt pre and post text. |
Analysis focus steers attention, never the format. It does not change the structure of the result, the scene length or the list of fields. Leave it empty for a general breakdown.


Which quality to choose
You choose a quality tier, not a model. Nodaro chooses the analysis model behind each tier, so a tier can improve over time without any change to your workflow.
| Analysis quality | What it does | Use it when |
|---|---|---|
| Fast | An economy analysis | You can trade some detail for price and speed. |
| Pro (the default) | A higher-fidelity analysis of scenes and entities | Most breakdowns. |
| Mixed | Several analysis passes combined for maximum completeness | Completeness matters most. |
| Mixed (consistent) | The same plan, tuned for the most consistent result from run to run | You run the same kind of video often and want steady output. |
| Smart | The highest accuracy: a detailed main pass blended with several economy passes, and always refined | The shot list will drive a regeneration. |
Every tier analyzes each part of the video several times and keeps or merges the best result: three passes on Fast and Pro, and six on the two Mixed tiers. Smart and both Mixed tiers also finish with a continuity review. It corrects claims that contradict each other across scenes. It also raises a continuity watch warning when a lasting state seems to be dropped, for example an object handcuffed to a character that disappears from later scenes. Every correction and watch is listed in the result's warnings.
What the analysis contains
The result has four parts. Downstream nodes and your own code read the same structure.
meta — facts about the file
| Field | What it holds |
|---|---|
durationSec | The measured duration, in seconds |
width, height | The frame size, in pixels |
aspectRatio | The aspect ratio, snapped to 16:9, 9:16, 1:1, 4:3, 3:4 or 21:9 when within 3%, otherwise the reduced width-to-height ratio |
title | The source title when known, such as the YouTube title |
language | The main spoken language. It always describes the footage, whatever the translation settings. |
look — the photography of the whole clip
Properties that belong to the whole piece rather than one shot, stated once so that every regenerated shot shares them. Every field is optional, and the whole part is left out when the analysis cannot read it.
| Field | What it holds |
|---|---|
style | The medium, such as "live-action photoreal", "2D anime", "stop-motion claymation" or "3D render" |
styleId | The matching entry of the Style picker, when the medium fits one |
grade | The color grade and palette |
format | The camera or film format and stock, such as "16mm film grain" |
lens | The lens character, such as "wide-angle, shallow depth of field throughout" |
lighting | The overall lighting style. A scene that differs describes its own lighting. |
genre | The kind of piece, such as "cinematic trailer" or "talking-head vlog" |
influence | The visual influence the piece clearly evokes, like the Photographer / Artist Style picker. It is left out unless the style is clearly recognizable. |
slots — the castable people, objects and places
Each recurring entity is extracted once, so that you can replace it with your own.
| Field | What it holds |
|---|---|
slotId | A stable id, used in a scene's visual text as a slot token, for example {slot:hero} |
label | A readable name |
source | The kind of asset to cast it from: a character, an object, a location or a creature |
role | Its role in the video, such as "narrator" or "hero product" |
description | A complete visual description, used when no asset is cast |
refImageUrl | A frame from the video where the entity is clearly visible, picked automatically |
variations | The entity's other looks, when Cast variations is on |
scenes — one entry per shot
| Field | What it holds |
|---|---|
sceneNumber | The scene's number, from 1, across the whole video |
startSec, endSec | Where the scene starts and ends, in seconds |
label | A short scene label |
shotType | The framing size: Wide, Medium, Medium Close-Up, Close-Up, Extreme Close-Up, or Two-Shot, Insert or Aerial |
angle | Where the camera sits. Absent means eye level. See the values below. |
camera | The camera movement in free text, such as "slow push-in". Empty for a locked-off shot. |
speed | slow-motion, ramp-in, ramp-out, timelapse, freeze or reverse. Absent means normal speed. |
effects | Effects on the picture: blur, pixelate, glitch, grain, vignette, flash, distortion or double-exposure. Absent means a clean image. |
onScreenText | Text burned into the picture, such as titles and captions, word for word in its original script |
visual | The visual description with slot tokens, for recasting |
visualResolved | The same description with every slot written out. Render from this field. |
audio | The sound layers of the scene. See below. |
slotRefs | The slots that appear in the scene |
slotVariations | Which look each slot wears in this scene, when Cast variations is on |
oversized | Present when the scene is longer than 8 seconds because it could not be cut shorter. It is still one generation. |
Each scene also notes a visible transition into the next shot, when there is one.
Camera angles. angle is one of eye-level, low, high, overhead, worms-eye, dutch, over-the-shoulder, pov, profile or from-behind. The three camera fields are independent: shotType says how much of the subject is in frame, angle where the camera sits, and camera what the camera does. An over-the-shoulder medium shot is shotType Medium with angle over-the-shoulder.
Read visualResolved, not visual. visual keeps the slot tokens so that you can recast the scene later. visualResolved is the complete, prompt-ready text that every downstream node should use.
Audio layers
A scene's audio is a list of the sounds that play at the same time. A music bed under a line of dialogue over a splash is three layers. An empty list means real silence.
| Field | What it holds |
|---|---|
mode | speech, music or sfx |
content | For speech, the exact words. For music and sound effects, a description ready for generation. |
voice | For speech, what the voice sounds like, such as "male, warm, conversational" |
speakerSlot | For speech, the slot of the on-screen speaker, when the analysis can tell |
- Each line appears once. Reading the speech layers in scene order gives the soundtrack with nothing said twice. A line that crosses a cut is split at the cut, and a line over a montage belongs to the shot where it starts.
- Soundtrack songs are music. A song that nobody on screen performs is part of the music layer, with its vocals described there. Only words spoken or sung inside the story are speech.
- The speaker is optional.
speakerSlotis left out when the analysis is not sure, when the speaker is an unseen narrator, and when the speaker is a one-off person with no slot.
Appearance looks
With Cast variations — detect alternate looks per entity on, the analysis separates the different looks of the same subject instead of averaging them into one description. A plain change of clothes between scenes counts as much as a dream, a flashback, a disguise, a transformation or an era.
- Up to 4 looks per slot. Each look has an id, such as
dream,flashback,disguise,costume,transformation,eraoralt-1. It also has a short label, a full description of the subject in that look, and a frame that shows it. - Scenes say which look is active. A scene without a look for a slot uses the slot's default look.
- Two ways of finding looks. One pass watches the footage for changes of clothes, hair and makeup. A second pass reads the finished analysis for looks the footage does not show, such as "twenty years later". Neither pass renames a slot or changes a scene's text.
- Nothing disappears silently. When a subject has more looks than the limit, the extra looks are folded into the default look, and the result records the fold.
Generate Video Pro keeps each look consistent within its own scenes.
Output language
With both Translate to English checkboxes off, the analysis keeps the video's original language. Speech is quoted word for word, and on-screen text stays in its original script. That is what you want to recreate a video as it is.
The two checkboxes change different things, so you can tick them independently:
| Checkbox | What it translates |
|---|---|
| Speech — what's said or sung | The spoken and sung words |
| On-screen text — signs, captions, titles | The text visible in the picture |
For example, you can have English narration over a street whose signs stay in Chinese. With either box ticked, the scene descriptions, camera notes, slot descriptions and voice notes are written in English too.
- Names stay as they are. Brand, product, person and place names are never translated.
- The language field does not change.
languagealways names the language spoken in the footage. - This changes the recreation. The scene descriptions are the prompts for regeneration, so a translated sign is rendered in English in the new shot.
- The original words are not kept. The translation replaces them. Run again with the boxes off if you need the original.
Music videos. By default, song lyrics that nobody on screen performs stay inside the music layer. For a music video, where the song is the piece, set musicVideo: true in the API request, or music_video in the MCP tool. Every sung lyric then comes back word for word as speech, scene by scene. This option is available through the API and MCP only.
Long videos and limits
- Maximum length: 10 minutes (600 seconds) for any source. The limit is checked when you run the node, and again after the video is downloaded.
- Windows: a video up to 180 seconds is analyzed in one pass. A longer video is analyzed in overlapping windows of about 150 seconds, with 5 seconds of overlap, then merged into one continuous, renumbered result.
- Links: YouTube URL takes a
youtube.comoryoutu.belink. The Video input also takes a link to one TikTok, Instagram, X or Facebook post, from a text node or a Video URL node. Live streams are refused; analyze the recording once the stream has ended.
Credits
The price depends on the Analysis quality and on the length of the video. The length falls into the smallest step that fits it: up to 60, 180, 360 or 600 seconds.
| Analysis quality | Up to 60 s | Up to 180 s | Up to 360 s | Up to 600 s |
|---|---|---|---|---|
| Fast | 200 | 204 | 567 | 933 |
| Pro | 238 | 256 | 704 | 1,162 |
| Mixed and Mixed (consistent) | 297 | 321 | 802 | 1,295 |
| Smart | 455 | 554 | 1,394 | 2,284 |
- A 3-second grace per step. A video up to 1:03 is priced at the 60-second step, up to 3:03 at the 180-second step, and up to 6:03 at the 360-second step. After the download, the node measures the video again and allows 6 seconds over the step it was priced at. A video that is longer still fails the run, and its credits are refunded.
- A YouTube link in a workflow run. Nodaro reads the linked video's own length before anything is reserved. The run is priced by the step that fits that length. A live stream, or a video longer than 10 minutes, is refused before anything is charged.
- A link to another site. Nodaro reads the length of a TikTok, Instagram, X or Facebook post the same way, and the run is priced by the step that fits it. For a link from a text node, the node cannot read that length before the run starts, so its Run button shows the price of the 600-second step. A post whose page does not give its length, as can happen on Instagram, is handled as an unknown length. For an exact price before the run, use a Video URL node instead: it fetches the video first, and the analysis is priced by the video's length.
- Unknown length. In a workflow run, if the length of the video cannot be read, the length the settings panel showed for the same link is used. Without one, the run is priced at the 600-second step. If a linked video then cannot be fetched, the run fails and its credits are refunded. Run on the node alone, the API and MCP refuse a video whose length cannot be read.
- After a generated video. A video made at an automatic length, or by a Seedance 2.5 Edit or Extend, records its length. In a workflow run after such a video, the node is priced by that recorded length, not at the 600-second step. A run in the editor is already priced this way. See Steps after a video of automatic length.
- Why the tiers differ. Longer videos need more windows, and each tier analyzes every window several times. Those repeated passes are the main reason Mixed and Smart cost more.
Tips
- Start with Pro. Drop to Fast for a cheaper pass when you can trade some detail.
- Use Analysis focus. Point the analysis at what matters for your recreation: product shots, on-screen text or one character.
- Check the analysis before you spend. Wire the result into AI Audit, which re-watches the video and corrects only what the footage confirms, before you generate every scene.
- Render from
visualResolved. UsevisualandslotRefsonly if you build your own recasting step.
From the API
The same analysis is available to code and to AI assistants. The full result is also stored in the job's output. The source is videoUrl or youtubeUrl, and the settings map to llmModel (the quality tier), selectionMode, variations, translateSpeechToEnglish, translateOnScreenTextToEnglish and analysisFocus. See Run a single node and the MCP tools.
Frequently asked questions
Which Analysis quality should I choose?
Pro, the default, suits most breakdowns. Choose Fast for a cheaper, quicker pass, Smart for the highest accuracy when the shot list will drive a regeneration, and Mixed when you want the most complete analysis.
How many credits does Video Analysis cost?
The price depends on the Analysis quality and the length of the video, in steps of up to 60, 180, 360 and 600 seconds. For example, a 45-second video costs 200 credits on Fast, 238 on Pro and 455 on Smart.
Can I analyze a YouTube video?
Yes. Paste a youtube.com or youtu.be link in YouTube URL, or connect a Text node that holds only the link to the Video input. Live streams are refused, so wait until the recording is available. A video connected to the node always takes priority over a link.
Can I analyze a TikTok, Instagram, X or Facebook video?
Yes. Paste the post's link in a Video URL node and connect it to the Video input. The node fetches the video first, so the analysis is priced by the video's length. A Text node that holds only the link works too, but Video Analysis cannot read that link's length before the run starts, so its Run button shows the price of the 600-second step. The run itself is priced by the length it reads when it starts.
How long can the video be?
Up to 10 minutes. Videos up to 3 minutes are analyzed in one pass, and longer videos in overlapping windows that are merged into one result.
How do I recreate the analyzed video?
Wire the Text output into the prompt of Generate Video Pro. Its Auto-cast from analysis option uses the frames the analysis picked for each person and object, so the recreation keeps them looking like the original.
Related
Generate Video Pro
AI Audit
Video URL
Upload Video
Video Analysis (Pro)
Last updated on
Gif to Video
Convert an animated GIF into an MP4 for free, loop short GIFs to a usable length, and use the clip as a motion reference for video models that refuse GIF files.
AI Audit
Re-watch a video against its Video Analysis, apply only the fixes the footage confirms, and get a report of every fix, declined change and watch item.