video-inspect vs video-frames: which returns the still you need
Video inspect gives a probe, 8 default stills at 768 px and optional STT for clips up to 1800 s; video frames gives exact stills at source size up to 300 s.

Use video inspect to learn what a clip is (duration, audio, a sample of stills, optionally a transcript) and video frames to pull exact frames at the source size. Inspect reads sources up to 1800 s and returns 8 mid-bin stills at a default max_edge of 768; frames reads sources up to 300 s and keeps the source frame size unless you clamp it (Video inspect, Video frames).
Side by side
| video-inspect | video-frames | |
|---|---|---|
| Route | POST /v1/video-inspect | POST /v1/video-frames |
| Default mode | sync, waits up to 30 s | always 202, poll |
| Source cap | 1800 s | 300 s |
| Stills per call | Up to 24 (8 by default) | 1 to 24 |
| Default image size | max_edge 768 | Source size |
| Also returns | Probe, optional transcript | Frames only |
| Fast seek | seek: "fast" (keyframe at or before) | Not offered |
A quick look then an exact frame
Probe first with frames: false, which returns only the probe facts, including probe.has_audio. Then pull the one frame you care about with video frames, which always returns 202 and is polled.
curl -X POST https://api.sume.com/v1/video-inspect \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: probe-001" \
-d '{"video_url": "https://media.sume.com/artifacts/artf_demo/talk.mp4", "frames": false}'
# then the exact frame, at source size
curl -X POST https://api.sume.com/v1/video-frames \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: frame-001" \
-d '{"video_url": "https://media.sume.com/artifacts/artf_demo/talk.mp4", "at": [2.5], "format": "png"}'Seek mode
Inspect's seek: "fast" moves each still to the keyframe at or before its instant, so it can be earlier by up to one GOP and is never later. Keep the default precise whenever a timestamp has to be accurate.
Billing and sources
Both routes read a media.sume.com clip of your workspace; import other URLs first. Video frames is billed by its Modal compute plus the platform fee, and the bill never exceeds the hold taken at submit. If one instant fails, that frame has a null url and the job does not fail. For at values the rule is 0 <= t < duration; a time outside it fails with frame_time_out_of_range.
Sources
Related posts
More in Media tools
- Sentence segments from video inspect: caption lines with no gaps
Sume video inspect with transcribe true can return gapless sentence segments, with silence_split_seconds from 0.2 to 3. Feed them to captions as cues.
- Voiceover spine: wav or mp3? 1,800 s is 158.76 MB or 28.8 MB
Timeline audio returns wav (sample-exact) or mp3 (smaller, padding at each edge). 1,800 s is 158.76 MB as 44.1 kHz mono wav vs 28.8 MB at 128 kbps.
- Wan 3.0 at 480p plus video upscale, 20 s: $1.43 vs $5.00 native 1080p
A 20 s Wan 3.0 clip at 480p plus a Sume video upscale costs $1.43 ($1.25 + $0.18) against $5.00 for native 1080p, if the upscale output size meets your need.
- wav or mp3 for joined audio: priming padding at every edge
Sume timeline audio outputs wav by default and mp3 as an option. Keep wav if you join again or lip-sync: mp3 adds priming padding at every edge.
Written by Sume