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.
- Square product photos to 9:16: timeline fit cover, contain or blur
Sume Timeline 1.0 renders 1080x1920 by default. Use video[].fit cover, contain, stretch or blur to place square product photos in a vertical holiday clip.
- 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.
Written by Sume