RRadar
Media, text & files

Video Frame Extractor

No Per-Video Fee

Example request

curl -X POST https://radarbg.com/v1/video-frame-extractor \
  -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"videoUrls": ["https://test-videos.co.uk/vids/bigbuckbunny/mp4/h264/360/Big_Buck_Bunny_360_10s_1MB.mp4"], "mode": "count", "frameCount": 8, "everySeconds": 10}'

Answer: {"ok": true, "count": N, "items": [...], "usage": {...}}. Failed calls are not counted.

Inputs

FieldTypeDescription
videoUrlsarrayDirect links to video files (mp4, mov, webm, mkv, m4v) or Apify key-value store file URLs. Links must be public and point straight to the file. YouTube, TikTok, Instagram and Facebook page links are not supported and are skipped.
modestringscenes = a frame at every scene change (ffmpeg scene detection). interval = one frame every N seconds. count = N evenly spaced frames. timestamps = exact times you list.
frameCountintegerUsed in count mode: how many evenly spaced frames to extract per video (limited by Max frames per video).
everySecondsnumberUsed in interval mode: extract one frame every this many seconds, starting at 0.
timestampsarrayUsed in timestamps mode: times to extract, as seconds (12.5) or HH:MM:SS (00:01:02.5). Times beyond the video end are skipped.
sceneThresholdnumberUsed in scenes mode: sensitivity from 0.01 to 1. Lower finds more scene changes (0.1 very sensitive), higher only hard cuts. 0.3 is a good default.
maxFramesPerVideointegerHard cap on frames per video (any mode). You pay per frame, so this caps the cost. Maximum 500.
formatstringImage format of the extracted frames. jpg is smallest, png is lossless, webp is a good compromise.
widthintegerResize frames to this width, keeping the aspect ratio. Never upscales. 0 keeps the original size.
qualityintegerQuality for jpg and webp, 1 to 100 (higher = better and bigger files). Ignored for png.
contactSheetbooleanAlso create one tiled grid image per video with all frames and their timecodes (one extra result row of type contact_sheet). Handy for a quick overview or for sending one image to an AI vision model.
maxVideoMinutesintegerSkip videos longer than this many minutes. A safety guard against huge files and surprise cost.
onlyNewbooleanSkip every video URL already processed in an earlier run with the same Monitor ID and the same settings. Use it for recurring jobs on a folder or feed of videos. Each video is paid for once.
monitorIdstringSeparate memory for each watch list (used with only-new mode). Use a different ID per feed or customer.

Price

Included in every plan: 100 calls a month free, then from €9 a month for 3,000 calls across all APIs.

Related APIs

Audio TranscriptionBulk Image DownloaderImage to Text OCRKeyword TrendsLemmy ScraperMastodon Scraper