Probe a 30-second AI clip before joining it: video inspect, no stills
Run video inspect with frames false to read a generated clip's probe facts, free, before it goes into a Timeline join. Python script and what the docs promise.

Call POST /v1/video-inspect with frames: false on the finished clip. Per Sume's docs that is a probe-only request: no stills are produced and the probe is unbilled. Print the returned probe object and compare it with what you ordered before the clip goes into a Timeline join.
A 30-second request is the length where a mismatch costs the most, so a free check is worth a few lines. Facts here are from the video inspect doc, read 2026-10-02.
What does the probe call need?
A video_url that is a media.sume.com artifact or asset in your workspace, plus an Idempotency-Key header. There is no open-internet fetch, so import outside footage first with POST /v1/media-imports. The default mode is sync and waits up to 30 seconds, then answers 200 with the result or 202 with a job to poll.
import os
import requests
clip = os.environ["CLIP_URL"] # a media.sume.com url you own
response = requests.post(
"https://api.sume.com/v1/video-inspect",
headers={
"Authorization": f"Bearer {os.environ['SUME_API_KEY']}",
"Idempotency-Key": "probe-clip-001",
},
json={"video_url": clip, "frames": False},
timeout=60,
)
response.raise_for_status()
print(response.status_code)
print(response.json())What is billed and what is not?
Probe and stills are unbilled. Only transcribe: true reserves, at the STT rate in the doc, so leave it off for a length check.
| Request | Output | Billed |
|---|---|---|
frames: false | probe only | No |
frames omitted | probe plus 8 stills | No |
frames: {at: [...]} | probe plus stills at your timestamps, 1 to 24 | No |
transcribe: true | Adds a transcript | Yes, STT rate |
What should I compare?
Read the keys in the returned probe and compare duration, size and whether it has audio with your order. The doc names probe.has_audio as the check for a silent clip. Print the whole object once, because this page does not list every probe key.
What if the clip is not what I ordered?
Do not join it. Resubmit with a new Idempotency-Key, since a replayed key returns the original job. Source clips must be 1800 seconds or shorter for inspect, which is well above any generation length.
Sources
Related posts
More in Developers
- Rerun an image script without paying twice: prompt-hash keys
Derive the Idempotency-Key from the request body so a crashed script that reruns cannot create a second paid image job. Includes the 409 case when you edit.
- Pub/Sub push subscription for Sume events: ack codes and dedupe
Pub/Sub push redelivers on any code outside 102, 200, 201, 202 and 204. Fan Sume completions through Pub/Sub safely with run_id and job_id dedupe.
- Python 3.15 TaskGroup.cancel: stop at the first Sume job done
Python 3.15 adds TaskGroup.cancel. Watch several Sume jobs and stop the other watchers when the first one completes, without cancelling the paid jobs.
- Python asyncio.timeout around a Sume job poll: a hard budget
Wrap a Sume status loop in asyncio.timeout so it stops at a fixed budget and returns still_running, leaving the job alone. A short version, run against a mock.
Written by Sume