NodaroAccount
Nodaro Docs
DocumentationNode ReferenceModelsTemplatesAI Agents (MCP)DevelopersSelf-hostingResearchCompare
Video

Shot Cuts

Find where every shot of a video starts and ends, measured from the file itself, and optionally save each shot's first and last frame as images.

The Shot Cuts node finds where every shot of a video starts and ends. It lists each shot with its start, its end and its length. Turn on Save first and last frames to also get each shot's first frame and last frame as images.

The node measures the file itself. Every decoded frame is compared with the one before it, and a frame that changes sharply from a quiet background starts a new shot. It is the same rule that Video Mask uses to mask a video shot by shot.

The node runs locally, with no AI model and no provider key, so it works on every edition.

When to use it

  • Get the shot list of an edit, such as an ad, a trailer or a music video, to rebuild or restyle it shot by shot.
  • Save a still of every shot, to use as a reference image for image or video models.
  • Measure the pacing of an edit, with the length of every shot at a glance.
  • Find the cut points before Split into Chunks. Its Shots mode cuts a video at these same points.

Quick start

Add the node

Press Tab on the canvas and choose Video › Cut & Assemble › Shot Cuts.

Connect the video

Wire a video into the Video input, for example from an Upload Video node.

Choose whether to save frames

Open the settings panel. Turn on Save first and last frames to save a first and a last frame for every shot.

Run it

Click Run on the node. The node shows the number of shots and the start and end of each one.

videoUpload Video30-second adShot CutsFrames onExtract FieldField: shots
Shot Cuts finds every shot of an ad, and Extract Field turns the shots into a list for the next nodes.

Inputs

InputAcceptsWhat it does
VideoVideo nodes, such as Upload Video and Generate VideoThe video to measure: MP4, MOV, MKV or WebM, up to 30 minutes long. Required.

Outputs

OutputWhat it carries
ShotsThe number of shots, the cut times, the video's length and every shot, as data.
First framesWith frames on: a list of each shot's first frame, as image URLs, in shot order.
Last framesWith frames on: a list of each shot's last frame, as image URLs, in shot order.

The Shots output looks like this:

{
  "shotCount": 3,
  "cutsSec": [2.5, 6.042],
  "durationSec": 9,
  "shots": [
    { "index": 0, "startSec": 0, "endSec": 2.5, "durationSec": 2.5, "firstFrameUrl": "https://…", "lastFrameUrl": "https://…" },
    { "index": 1, "startSec": 2.5, "endSec": 6.042, "durationSec": 3.542, "firstFrameUrl": "https://…", "lastFrameUrl": "https://…" },
    { "index": 2, "startSec": 6.042, "endSec": 9, "durationSec": 2.958, "firstFrameUrl": "https://…", "lastFrameUrl": "https://…" }
  ]
}
FieldWhat it means
cutsSecWhere each new shot starts, in ascending order, never 0. A video with a single shot has cutsSec: [] and one shot that covers the whole video.
durationSecThe video's length. The last shot ends there.
startSec, endSecSeconds from the video's first frame, to the millisecond.
firstFrameUrl, lastFrameUrlPNG images, only when frames are on. The last frame is the frame just before the next cut, or the video's final frame. A one-frame shot's first and last frame are the same image.

Settings

SettingWhat it does
Save first and last framesOff by default. When on, the node also saves every shot's first and last frame as images. The price is the same. Frames are saved for videos with up to 1,000 shots.

What counts as a cut

  • A hard cut starts a new shot: one frame differs sharply from the frames around it.
  • Gradual transitions are not cuts. A dissolve or a fade through black spreads the change over many frames, so the shots on both sides count as one.
  • Flashes. A flash held for two or three frames that returns to the same picture is not a cut. A one-frame flash is a cut.
  • A cut can be missed when a second large change follows it within three frames, such as a whip pan.

Credits

Shot Cuts costs one flat price per run, with or without frames, whatever the length of the video. The Run button on the node shows the price. Self-hosted Community and Business editions use no credits.

These runs fail, and their credits are refunded:

  • A file that is not a readable video.
  • A file over about 10.7 GiB. The download stops there.
  • A video longer than 30 minutes. Trim it first.
  • With frames on, a video with more than 1,000 shots. Turn frames off to get the times alone, or trim the video.

Tips

  • Read one shot's times. Wire the Shots output into Extract Field, with the field shots and Output Type set to List, or into a list node. See Lists and batching.
  • Rebuild a video shot by shot. Turn frames on, and use each shot's first frame as the start frame of a new clip.
  • Cut one clip per shot. Use Split into Chunks in Shots mode.
  • Frames are exact. They are the decoded frames, saved without loss, at the size of the video's picture.

Troubleshooting

ProblemWhat to do
The run fails on a long videoShot Cuts measures videos up to 30 minutes long. Trim the video with Trim Video first.
The run fails with frames onThe video has more than 1,000 shots. Turn Save first and last frames off, or trim the video.
Two shots were counted as oneThe shots are joined by a dissolve or a fade, which is not a cut. A hard cut right before a whip pan can also be missed.
A flash started a new shotA one-frame flash counts as a cut. Merge the two shots in the steps after the node.

From the API

POST /v1/shot-cuts with { videoUrl, frames? } queues a job and answers with its jobId. A malformed request answers 400 validation_error before any credits are held. The finished job's output_data.json is the Shots result above. With frames on, output_data.firstFrames and output_data.lastFrames list the frame images in shot order.

The SDK method is client.media.shotCuts, and the MCP tool is shot_cuts. See Run a single node, Media and uploads in the SDK and the MCP tools.

Frequently asked questions

What does Shot Cuts do?

Shot Cuts reads a video and lists its shots, with where each one starts, where it ends and how long it lasts. It measures the file itself, so the times match the video exactly.

Does Shot Cuts count a dissolve or a fade as a cut?

No. A dissolve or a fade through black spreads the change over many frames, so the shots on both sides count as one. Only a hard cut starts a new shot.

How long can the video be?

Shot Cuts measures videos up to 30 minutes long, in MP4, MOV, MKV or WebM. Trim a longer video first.

Can Shot Cuts save a still of every shot?

Yes. Turn on Save first and last frames. The node then also saves each shot's exact first frame and last frame as PNG images, for videos with up to 1,000 shots. The price is the same.

How much does Shot Cuts cost?

Shot Cuts costs one flat price per run, with or without frames, whatever the length of the video. The Run button on the node shows the price.

Last updated on

On this page