Skim a 20-minute video: video inspect seek fast vs precise
Use seek fast to sample 24 stills from a long video quickly, up to one keyframe interval early, and seek precise when a timestamp must match. Sume docs, read.

Use seek: "fast" in the frames object of a Sume video inspect request when you are skimming a long video: it snaps each still to the keyframe at or before the instant you asked for, so a still can be earlier by up to one keyframe interval (roughly 0 to 5 seconds on typical sources), never later. Keep precise, the default, when the timestamp must match.
Both modes are documented in the video inspect guide, read 2026-10-04. Inspect accepts a source up to 1800 seconds and up to 24 stills per call, so a 20-minute video fits in one request.
The two modes
| seek | How the still is found | Use when |
|---|---|---|
| precise (default) | Decodes to the exact instant | The timestamp must match |
| fast | Snaps to the keyframe at or before the instant, skips the decode | Skimming a clip |
Spacing 24 stills over 20 minutes
With fps capped at 2 and a 24-still limit per call, an explicit at[] list gives you control. A 1200-second video sampled at 24 evenly spaced instants gives one still every 50 seconds (1200 / 24). With fast, the response reports sample_times for the instants the tiles actually show and requested_times for the ones you asked for, so you can see how far each still moved.
import json, os, urllib.request
at = [i * 50 for i in range(24)] # 0, 50, ... 1150 seconds
body = json.dumps({
'video_url': os.environ['SUME_VIDEO_URL'],
'frames': {'at': at, 'seek': 'fast'},
}).encode()
req = urllib.request.Request(
'https://api.sume.com/v1/video-inspect', data=body, method='POST',
headers={'Authorization': 'Bearer ' + os.environ['SUME_API_KEY'],
'Content-Type': 'application/json',
'Idempotency-Key': 'skim-demo-001'})
with urllib.request.urlopen(req) as r:
print(r.status)Source and cost notes
The video_url must be a media.sume.com clip your workspace already owns; import other URLs first with POST /v1/media-imports. Probe and stills are billed by their Modal compute, and a transcript adds the public rate of $0.01 per audio minute when you ask for one; confirm rates in GET /v1/catalog.
When not to use fast
Do not use fast to check a cut point, a caption time or a frame you will quote. The still can come from an earlier moment, and for exact-frame work use precise or the separate video frames route.
Sources
Related posts
More in Media tools
- Split one recording into many audio clips: detach once, then split
Twenty ranges from one talking-head video need one audio detach and one split job, not twenty cuts. Wav or mp3, overlap rules, and what each clip returns.
- Spotify and Amazon audio ads share one loudness target: -14 RMS
Spotify's video ad page and Amazon's audio ad page both ask for RMS at -14 dBFS and peak at -0.2 dBFS. Where Sume's gain_db helps and where you must measure.
- Stability AI's Series B and label backers: what it means for audio
Stability released Stable Audio 3.0 on 5/20/26 and raised a Series B on 8/25/26 with EA, Sony, UMG and WMG. A dated timeline and what to verify for video work.
- Stabilize shaky video by API: Sume has no deshake, so do this
Sume's video filter refuses deshake and vidstab as unknown filters. Prove it with the free check, stabilize upstream, then use Sume for trim, crop and captions.
Written by Sume