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.

4 min readSume
All posts

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

From the Sume video inspect docs, read 2026-10-05
frames valueResult
not sent8 mid-bin stills
falseProbe 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) or png.
  • max_edge: 64 to 2160, default 768. Send the source edge for a first-frame restage.
  • seek: precise (default) or fast, 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

All Media tools posts

Written by Sume