How fast is a reference Short cut? Shot length from reference-ingest

Average shot length is clip duration divided by the shots[] count in a Sume reference-ingest manifest. It is a detector estimate, not an editor's cut list.

4 min readSume
All posts

To measure the pacing of a reference Short with Sume, run reference ingest and divide the clip duration by the number of entries in shots[]. The docs say shots[] lists frame-exact cuts that two detectors, ffmpeg scdet and PySceneDetect, vote on, and that the list tiles [0, duration] with no gap, so each entry has a start and end. The result is an estimate of average shot length, not an editor's cut list.

Reference ingest is dest first: the docs say it is listed only where SUME_COM_REFERENCE_INGEST_ENABLED permits it, with development auto-on and production opt-in.

What the manifest gives you

Each shot also carries one sharp source-resolution keyframe, a palette, luma and a motion class. Separately, boundaries[] lists visual change candidates scored from 12 samples a second, kept at 0.1 or above; the docs call these mechanical evidence, not editorial shots. A Short is a vertical or square video of up to 3 minutes (YouTube Help, read 2026-10-05), well under the 300 second ingest limit.

pacing signals in a reference manifest (Sume docs read 2026-10-05)
FieldSourceUse for pacing
shots[]two detectors vote, tiles [0, duration]shot count and lengths
boundaries[]12 samples a second, threshold 0.1extra cut candidates, noisier
shots[].motion classper shotseparate static from moving shots
audio beatsonly when the track is musicalign cuts to a beat grid

Compute it

The helper reads only start and end from each shot. The sample data is invented for illustration and is not a real manifest.

def pacing(shots):
    lengths = [s["end"] - s["start"] for s in shots]
    return {
        "shots": len(lengths),
        "avg_seconds": round(sum(lengths) / len(lengths), 2),
        "shortest": round(min(lengths), 2),
    }

sample = [{"start": 0, "end": 1.4}, {"start": 1.4, "end": 3.0}, {"start": 3.0, "end": 8.0}]
print(pacing(sample))

Using it in a remix

If the reference averages about 1.5 seconds a shot, plan your own cut list in that range, remembering that each Timeline 1.0 slot must be at least 0.2 seconds and that starts must begin at 0 and increase. Pacing is one signal. Do not copy another creator's edit shot for shot; the reference is for structure and rhythm.

Limits

A detector can miss soft dissolves and can split a fast whip pan in two, so an average over a few shots is noisy and an average over a whole Short is steadier. The tool reports uncertain[] entries for the cases it wants a second look at. It also does not judge quality; a slow Short can outperform a fast one.

If the source is longer than 300 seconds, the docs say to trim it first, for example with video trim, and ingest the part you care about. A hook of the first few seconds often tells you more about pacing than the full average does, so you can also compute the figure for the shots that start before the 5 second mark and compare it with the whole clip.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume