Check 200 holiday clips before upload with a free probe-only inspect

A video-inspect call with frames false is a probe with no stills and no charge. Use it as a pre-upload audio gate, then pull stills only for clips you doubt.

5 min readSume
All posts

Call POST /v1/video-inspect with frames: false and Sume returns only the probe for that clip, with no stills and no transcript. The docs list probe and stills as unbilled, so this is a free per-clip gate you can run over a whole holiday batch before anything is uploaded to an ad platform. The one field the docs name for gating is probe.has_audio.

It is a technical check, not a creative one. It tells you whether the file has an audio track. It does not tell you whether the hook is good or the product is the right one.

Why gate clips before the holiday upload window?

In a big seasonal batch the failures that cost you a day are boring ones: a clip that rendered without sound, a wrong file attached to a SKU, a file far longer than the slot expects. Catching them while the batch is still on your side is cheaper than finding out from a rejected upload close to a sale date.

Two later Sume steps fail on specific files if you do not check first. Transcribing a clip with no audio track returns inspect_source_has_no_audio, and burning speech captions on a silent clip fails as caption_no_speech (see Video captions). A probe-only check lets you route silent clips to authored overlay captions instead.

What does a probe-only call look like?

The clip must be a media.sume.com file in your workspace; import anything else first, as described in Media inputs. The default mode for inspect is sync: the handler waits up to 30 seconds and returns 200 with the result, or 202 with a queued job you poll through GET /v1/jobs/:id/status. Send an Idempotency-Key on every call, as covered in Jobs and results.

This shell loop reads one URL per line from clips.txt and prints the response for each. It prints raw JSON; the exact nesting of the probe object is in the live OpenAPI.

i=0
while read -r url; do
  i=$((i+1))
  curl -s -X POST https://api.sume.com/v1/video-inspect \
    -H "Authorization: Bearer $SUME_API_KEY" \
    -H "Content-Type: application/json" \
    -H "Idempotency-Key: holiday-qa-$i" \
    -d "{\"video_url\": \"$url\", \"frames\": false}"
  echo
done < clips.txt

What do you do with the clips that fail the gate?

Split the list by what the probe says, not by guesswork, using the table below.

For a clip you still doubt after the probe, ask for stills at chosen moments. frames: { at: [0.5, 3, 8] } returns up to 24 durable JPEG or PNG stills per call, at a default longest edge of 768 pixels. Omitting frames returns 8 mid-bin stills. Add seek: "fast" only when you are skimming, because it snaps each still to the keyframe at or before the instant, up to about five seconds early on typical sources.

What to do after a probe-only inspect (read 2026-10-02)
Probe resultMeaningNext step
has_audio trueThe file has an audio trackSafe to transcribe or burn speech captions
has_audio falseSilent clipAdd a voice or music bed, or burn authored caption cues
source_not_found errorDead or foreign media.sume.com URLRe-import the file and fix the SKU mapping
Doubtful contentThe probe cannot judge itRequest frames at chosen times and look at them

What does this gate not do?

It does not check ad-platform specs for you. Sume's probe returns facts about the file and you compare them against the platform page you are targeting. It also does not rate quality, read text in frames or compare the clip to the product listing.

It also does not replace spend control for the paid steps that follow. A bulk Format run or an avatar video still reserves its estimated cost at submit, and that is a separate decision from the free check. For the paid side of a holiday batch, see what it costs to finish 100 holiday ads.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume