Video inspect frames: at and fps together return a 400 conflict
Sume video inspect frames takes either at[] or fps, never both. The conflict and required codes, the 24-still cap, and how to sample a clip evenly.

The frames field of Sume video inspect is an object with a program, and the program is either at[] (explicit seconds) or fps (a sample rate). Sending both returns video_inspect_frames_program_conflict. Sending an object with neither returns video_inspect_frames_program_required. The docs, read 2026-10-05, list both under refusals.
Leave frames out and you get the default: 8 mid-bin stills, or 1 per second if the clip is shorter than 8 seconds. Send false and you get only the probe.
The options
| frames value | Result |
|---|---|
| not sent | 8 mid-bin stills |
| false | Probe only |
| { at: [1, 5, 9] } | Stills at those seconds, 1 to 24 values |
| { fps: 0.5 } | Mid-bin samples, 0 < fps <= 2, up to 24 |
Extra knobs on the object
format:jpeg(default) orpng.max_edge: 64 to 2160, default 768. Send the source edge for a first-frame restage.seek:precise(default) orfast, which snaps each still to the keyframe at or before its instant.
A working request
Evenly sample a 60 second clip with six stills: fps 0.1 gives mid-bin samples at 5, 15 and so on.
curl -X POST https://api.sume.com/v1/video-inspect \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: sample-001" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/clip.mp4",
"frames": {"fps": 0.1, "max_edge": 512}
}'An at value outside the clip returns frame_time_out_of_range with the duration, so read probe.duration_seconds first when you do not know the length.
Sources
Related posts
More in Media tools
- video-inspect 400: frames at and fps together on a Shorts hook
Send frames.at or frames.fps to Sume video-inspect, never both: both returns 400 video_inspect_frames_program_conflict. Pick at[] for a Shorts hook check.
- video-inspect frames needs at or fps: probe a Short with frames:false
video_inspect_frames_program_required means frames is an object with no at or fps. Omit frames for 8 stills, or pass frames:false to only probe a Short upload.
- Check an ad clip's aspect ratio with Sume video inspect stills
Sume video inspect returns stills with width and height. Send max_edge at the source edge, read the ratio, and catch a wrong-ratio clip before upload.
- Video inspect hdr flag: spot PQ or HLG clips before you submit
Sume video inspect returns probe.hdr, color_transfer and pix_fmt. Read them first and route HDR clips away from the video filter and exact trim.
Written by Sume