Analysis and edit lists
Analyze a video scene by scene, audit the analysis, detect silence, sync several recordings, and plan and render edit decision lists with MCP tools.
The analysis and edit list tools read existing recordings and turn them into structured data or finished cuts. video_analysis and video_audit break a video down scene by scene so it can be re-created, silence_detect and audio_sync measure recordings, and plan_edit and apply_edl plan and render cuts from a transcript. Every tool needs the workflows:execute permission and returns a job id.
video_analysis
Analyzes a video into a scene-by-scene breakdown built for AI re-creation. It works like the Video Analysis node.
- Scenes are cut at natural boundaries and last at most 8 seconds, one image or video generation per scene.
visualResolvedis a self-contained, prompt-ready description of each scene. It is the field that later steps read.- Each scene also has a shot type, a camera movement, and a list of audio layers. Speech is quoted word for word, music and sound effects are described so they can be generated, and an empty list means silence.
- Slots are the people, objects and places that recur, so you can re-cast them with your own characters.
Permission: workflows:execute. Credits: by tier and video length, in the table below.
| Parameter | Type | Notes |
|---|---|---|
video_asset_id, video_url or youtube_url | string | Required, exactly one. A Nodaro video job or upload id, a direct video URL, or a YouTube link. Up to 10 minutes; no live streams. Zero or two sources return an error. |
llm_model | string | The tier: pro (default), fast (cheaper), smart (the most accurate), mixed or mixed-fast. |
selection_mode | string | choose (default) or combine, an enhanced, verified result with the most detail. combine is a little slower and recommended. |
variations | boolean | Also detects each person's or thing's different looks, such as a change of clothes, a dream or a disguise, and binds each look to its scenes. Default false. |
music_video | boolean | Treats the clip as a music video: every sung lyric is transcribed as speech. Default false, where song vocals nobody on screen performs are part of the music layer. |
translate_speech_to_english | boolean | Returns spoken and sung words in English. Default false: the original language. |
translate_on_screen_text_to_english | boolean | Returns signs, captions and titles in English. That text is part of the visual prompt, so a re-generated scene shows the English wording. Names keep their original form. |
analysis_focus | string | A steer, up to 2,000 characters, for example "focus on the product shots and on-screen text". |
Returns: a job id. The analysis, meta, slots and scenes, is in the job's output_data.
The price depends on the tier and on the length bucket, the smallest of 60, 180, 360 or 600 seconds that fits the video:
| Tier | Up to 60 s | Up to 180 s | Up to 360 s | Up to 600 s |
|---|---|---|---|---|
fast | 181 | 186 | 516 | 849 |
pro | 217 | 233 | 642 | 1,059 |
mixed, mixed-fast | 270 | 292 | 731 | 1,181 |
smart | 414 | 504 | 1,270 | 2,081 |
The tool's own description always carries the current prices. If this table and the tool disagree, the tool is right.
video_audit
Watches a video again against its analysis and fixes what is wrong. Every correction is applied under checks and reported, and what could not be fixed is flagged, not changed. It works like the AI Audit node.
Permission: workflows:execute. Credits: by length, and cheaper when you pass an analysis.
| Parameter | Type | Notes |
|---|---|---|
video_url | string | Required. The video to audit. |
analysis | object | The analysis from an earlier video_analysis or video_audit call, passed as it is. Without it, the tool first runs a fast analysis, which costs more. |
Returns: a job id. The job's output_data holds the report: what was checked, what changed and what was left open.
| Run | Up to 60 s | Up to 180 s | Up to 360 s | Up to 600 s |
|---|---|---|---|---|
With analysis | 215 | 291 | 664 | 1,075 |
Without analysis | 396 | 477 | 1,180 | 1,924 |
silence_detect
Finds the silent ranges in a recording, from its audio only: no transcript and no pictures. It works like the Silence Detect node.
Permission: workflows:execute. Credits: 10.
| Parameter | Type | Notes |
|---|---|---|
audio_url | string | Required. An audio or video URL. The audio track is read either way. |
threshold_db | number | The silence level in dBFS, from -90 to 0. Default -35, a good floor for speech. |
min_silence_ms | integer | The shortest silence to report. Default 700. |
pad_ms | integer | Speech kept around each range. Default 120. |
Returns: a job id. The result is output_data.json, { ranges, durationMs }. Pass that object, not the whole output_data, as the silence of plan_edit, or use ranges to write an edit list by hand.
audio_sync
Measures how far apart the clocks of 2 to 6 recordings of one conversation are, such as camera files and a main microphone, by comparing their audio. It works like the Audio Sync node.
Permission: workflows:execute. Credits: 10 for each recording aligned to the reference, so 10 times the number of sources minus one.
| Parameter | Type | Notes |
|---|---|---|
sources | array | Required. 2 to 6 recordings, each { id, url }, with a unique id. Audio or video URLs. |
reference | string | The id of the recording every offset is measured against. Default: the first one. |
Returns: a job id. The result is output_data.json: { reference, offsets, notes }, where each offset has sourceId, offsetMs, confidence and driftMsPerHour. A time on the reference clock is the time in the source plus offsetMs. Low confidence and clock drift are reported in notes, never corrected.
plan_edit
Turns a timed transcript into an edit decision list for a recording. It reads the transcript, never the pictures. It works like the Edit Plan node.
Permission: workflows:execute. Credits: from 30 to 1,480, by the recording's length, the mode and the tier. Nodaro Cloud only.
| Parameter | Type | Notes |
|---|---|---|
mode | string | Required. tighten removes silences, filler words and false starts in one cut. clips finds short clips to share, one edit list each. chapters marks chapters with titles. |
transcript | object | Required. The word-level transcript, from transcribe. |
sources | array | Required. 1 to 6 recordings, each with a url, and optionally its kind (video or audio), role (master-audio, camera, wide or screen), speakers and offset_ms on the master clock. |
silence | object | The result of silence_detect. |
plan_tier | string | economy, standard (default) or premium. |
count | integer | For clips: how many clips, from 1 to 50. |
target_duration_sec | integer | For clips: the length of each clip, from 5 to 180 seconds. |
target_aspect | string | 16:9, 9:16, 1:1 or 4:5. |
platform, instructions, style_guide | string | Where the clips will be posted, and free-text guidance. |
Returns: a job id. The plan is in the job's output_data, ready for apply_edl.
apply_edl
Renders an edit decision list into a finished cut. It works like the Apply EDL node, which also gives the price per minute.
Permission: workflows:execute. Credits: priced per minute of rendered output.
| Parameter | Type | Notes |
|---|---|---|
edl | object or string | Required. The plan from plan_edit, or a list you wrote. Its segments are in whole milliseconds on a master clock, and each names one of the EDL's sources by id. A video render needs a video source on every segment. |
sources | array | URLs that replace the EDL's source URLs, in the same order. |
output | string | video (default) or audio. |
quality | string | proxy for a fast preview, or final (default). |
crossfade_ms | number | A crossfade on boundaries without their own transition, up to 5,000 ms. Default 0, hard cuts. |
transcript | object | A transcript to remap through the cut, so it matches the result. |
A render can produce at most 180 minutes. A malformed list, or one that is too long, is refused before anything runs, with the segment and the rule it breaks.
Returns: a job id. The rendered file is the job's result.
Edit a recording from its transcript
Transcribe it
Call transcribe on the recording. The word timings are in the job's output_data.json.words.
Find the silences
Call silence_detect. This step is optional, but it helps tighten.
Plan the cut
Call plan_edit with the transcript, the silences and the recording, in tighten, clips or chapters mode. Check the plan and change it if you need to.
Render it
Call apply_edl with the plan. Use quality: "proxy" for a quick preview first.
The podcast-editing recipe guides an assistant through the same steps; see Content recipes. For several cameras and a separate microphone, run audio_sync first and pass each source's offset_ms to plan_edit.
Frequently asked questions
Related
Video Analysis
Apply EDL
Audio
Content recipes
Recast
Last updated on
Video editing
Trim, join, loop, caption, overlay and assemble video from an AI assistant with Nodaro's editing tools, several of which run without AI and cost no credits.
Audio
Generate speech and dialogue, design and change voices, dub, create sound effects, transcribe, and clean or trim audio with the Nodaro MCP audio tools.