Review a 96-second Short in 24 stills: video frames fps 0.25
fps 0.25 on a 96-second Short returns 24 stills at seconds 2, 6, 10 and on to 94. Video frames takes 24 per call, so one job covers the whole cut.

Set fps to 0.25 on a 96-second clip and video frames returns exactly 24 stills, at seconds 2, 6, 10, 14 and so on to 94. That is the call's 24-frame cap met with no waste, one still every 4 seconds, and the whole cut is covered in a single job.
A 96-second clip fits a YouTube Short: the Shorts page (read 2026-10-09) allows up to three minutes with a square or vertical aspect ratio. It also says a Short over one minute with an active copyright claim of any type is blocked globally. A 96-second cut is over that line, so this review is where you check which scenes carry licensed audio or footage.
Where the stills land
The video frames doc says fps expands to mid-bin samples at 0.5/fps, 1.5/fps, 2.5/fps and so on, with a limit of 24 frames. At 0.25 fps the bin is 4 seconds, so the first sample is 0.5 / 0.25 = 2 seconds, and sample k is (k + 0.5) / 0.25 = 4k + 2. For k from 0 to 23 the last is 94. The list of times is also given back as frames[{t, url, width, height}], so you do not need to compute it.
| k | Time t (s) | Covers |
|---|---|---|
| 0 | 2 | 0 to 4 s |
| 1 | 6 | 4 to 8 s |
| 11 | 46 | 44 to 48 s |
| 22 | 90 | 88 to 92 s |
| 23 | 94 | 92 to 96 s |
What you pay and what you get
Video frames is not a fixed-price job. It reserves its Modal compute ceiling at submit and bills the job's own container seconds times the Modal list times 1.25, plus the platform fee, never more than the hold. The docs give no per-job price, so check GET /v1/catalog for the live rate rather than assuming one. Stills are durable media.sume.com artifacts at the source frame size unless you send max_edge (16 to 2160), and the format is jpeg by default or png.
If one instant fails to extract, that frame has url null and the job does not fail. Always filter nulls before you build a contact sheet.
Picking the right tool
Video inspect is the other option: it returns a probe, eight mid-bin stills by default, and optional speech-to-text. Its stills default to a 768-pixel long edge; video frames does not clamp. For a review where a logo or a caption must be legible, use video frames. For a quick look at a long clip, inspect with seek set to fast.
If you want a different spacing, use at[] with up to 24 explicit times. For example, at [0, 1, 59, 60, 61, 95] lets you inspect the opening, the one-minute line and the last second, which is where claims and cutoffs bite. Times must satisfy 0 <= t < duration, or the worker fails the job with frame_time_out_of_range.
The request
POST /v1/video-frames always returns 202; poll GET /v1/video-frames/{id} until resource_status is ready.
{
"video_url": "https://media.sume.com/artifacts/artf_demo/short.mp4",
"fps": 0.25,
"format": "jpeg"
}Sources
Related posts
More in Media tools
- A 4-second spoken line: H3 Max Lip Sync refuses it, Fabric $0.75
Sume's H3 Max Lip Sync needs 5 to 14.8 seconds of audio. A 4-second line goes to VEED Fabric: $0.75 at 720p or $0.40 at 480p. The rule and the arithmetic.
- A 61-second Sume timeline render bills 2 minutes: $0.20
Timeline 1.0 charges $0.10 per output minute, rounded up: 60 s is $0.10, 61 s is $0.20, 30 min is $3.00. The free plan call shows billable_minutes first.
- AI music adds vocals under narration: the Sume prompt fix
Sume Music has no negative prompt: a non-empty one returns 400. End the prompt with Instrumental, no vocals; add no spoken word. Each retry is $0.125.
- Audio detach refuses a 31-minute video: trim it first, $0.43 total
Audio detach rejects sources over 1,800 seconds. A 31-minute video needs trimming into pieces first: four trims, four detaches and 31 minutes of STT cost $0.43.
Written by Sume