{"uid":"cap_-3OGPMSTqeWK6Wd0kSabF","slug":"relaystation-video-frame-extractor-9a62c84a","name":"Relaystation Video Frame Extractor","description":"$0.0003/MP. Extract N evenly-sampled frames from a video — a manifest of presigned image links back. 1¢ x402 min; remainder auto-credits — relaystation.ai/penny","url":"https://api.relaystation.ai/v1/media/frames","method":"POST","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","bodyType","body"],"properties":{"body":{"type":"object","properties":{"file":{"type":"object","description":"cputools input-source: { inline: <base64 ≤ 4 MiB> } or { inputKey: <scratch key ≤ 50 MB> }. The input container must sniff (ffprobe) to the live allowlist (operator-tunable cputools.media.input_formats): 3g2, 3gp, aac, asf, avi, flac, flv, gif, m4a, m4v, matroska, mj2, mov, mov,mp4,m4a,3gp,3g2,mj2, mp3, mp4, mpeg, mpegts, mpegvideo, ogg, wav, webm, wmv. An off-list input is a free 422 UNSUPPORTED_FORMAT."},"count":{"type":"integer","maximum":50,"minimum":1},"width":{"type":"integer","maximum":1920,"minimum":32},"format":{"enum":["png","jpeg","jpg"],"type":"string"}}},"type":{"type":"string","const":"http"},"method":{"enum":["POST","PUT","PATCH"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object"}}}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.01","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"registry","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.01/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_wBteaGjLMYbzbJgMTIxHt","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.01","costPer":"request","priority":0,"asset":null,"unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Extracts N evenly-sampled frames from a video and returns a manifest of presigned image links","exampleAgentPrompt":"Extract 10 evenly-spaced frames from this video — https://example.com/myvideo.mp4 — and give me the presigned image links so I can review them.","exampleUseCases":[{"title":"Video storyboard for content review","prompt":"I need to quickly review the content of this 2-minute product demo video — can you pull out 12 evenly-sampled frames from https://cdn.example.com/demo.mp4 and give me the image links so I can scan through what's in it?"},{"title":"AI vision pipeline frame sampling","prompt":"Before I run vision analysis, sample 20 evenly spaced frames from https://storage.example.com/interview.mp4 and return the presigned URLs so my image classifier can process each one."},{"title":"Thumbnail grid for video preview","prompt":"I want to build a thumbnail grid preview for this user-uploaded video at https://uploads.example.com/clip.mp4 — extract 9 evenly distributed frames and hand me the image links."}],"resultDescription":"A manifest (list) of presigned image URLs pointing to the N evenly-sampled frames extracted from the input video. Each link provides temporary direct access to the extracted frame image. Billing is $0.0003 per megapixel of extracted frames, with a 1¢ minimum charged via x402; any remainder auto-credits.","failureModes":["Invalid or inaccessible video URL — endpoint cannot fetch the source video","Unsupported video format or codec","N value out of acceptable range (too low or too high)","Video too large or too long — may exceed processing limits","Presigned links expire after a short window — agents must use them promptly","Payment failure via x402 — insufficient USDC balance"],"whenToPreferThis":"Choose this endpoint when you need to rapidly decompose a video into a fixed number of evenly-distributed still frames for downstream image analysis, storyboarding, preview grids, or computer vision pipelines. It is ideal for agentic workflows where the number of frames matters more than finding scene changes or specific moments — and where you want direct presigned URLs rather than stored assets. Prefer it over ffmpeg-based DIY solutions when you need a hosted, pay-per-use, agent-friendly API with no infrastructure to manage.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T00:52:27.196Z","isFirstParty":false}