Kanto Labs
Video Frame Extractor icon

Media · Apify actor

Keyframes, scene changes and thumbnails from any video file

Get the real scene changes, a fixed number of evenly spaced thumbnails, or one frame every N seconds. Every frame gets a public image link and a timestamp, and each video gets a contact sheet and its metadata. Built for AI pipelines: vision models read images, not video.

$0.002 per frameFailed inputs are freeLaunching soon

Launching soon. Video Frame Extractor is built, tested and priced, and is waiting to go public on the Apify Store. The button below opens its Store page, which will be live shortly.

What it does

Video Frame Extractor, in short

  • Four modes: auto storyboard, scenes (real cuts only), count (N evenly spaced) and interval (every N seconds)
  • Public image link, timestamp and timecode for every frame
  • A free contact sheet (storyboard grid) per video
  • Metadata: duration, resolution, fps, codecs, bitrate, container
  • JPG, PNG or WEBP output, optional downscaling
  • Direct video file links only; video platform pages are refused on purpose

Who it's for

Built for

Video understanding with LLMsSend 8-20 keyframes to a vision model to summarize, tag or moderate a video.
Course and product teamsPick the best thumbnail for a lesson, product clip or video page.
Editors and reviewersReview hours of footage at a glance with contact sheets.
Computer-vision datasetsSample frames from your own recorded footage to train or evaluate models.

Example

Input and output

One dataset row per result, downloadable as JSON, CSV or Excel, or read through the Apify API.

Input
{
  "videoUrls": ["https://your-bucket.s3.amazonaws.com/uploads/demo.mp4"],
  "mode": "count",
  "frameCount": 8
}

From a real test run on the Sintel trailer, trimmed to one of its 12 frames.

Output (one row)
{
  "fileName": "trailer.mp4",
  "durationSeconds": 52.21,
  "width": 854,
  "height": 480,
  "fps": 24,
  "mode": "auto",
  "scenesDetected": 6,
  "frameCount": 12,
  "frames": [
    { "index": 5, "timestampSeconds": 16.5, "timecode": "00:00:16.500",
      "sceneScore": 1, "url": "https://api.apify.com/v2/key-value-stores/.../records/...jpg" }
  ],
  "contactSheetUrl": "https://api.apify.com/v2/key-value-stores/.../records/...contact-sheet.jpg",
  "error": null
}

Pricing

Pay per result. Failures are free.

$0.002frame extracted · $2.00 per 1,000

No subscription, no monthly minimum. Apify platform compute is included in the price; Apify also adds a tiny start fee per run ($0.00005 per GB of run memory).

Example costs
You runYou pay
One 2-hour lecture, a frame every 60 s$0.24
100 product videos × 8 frames$1.60
The demo run (24 frames)$0.048
Worked example. You pull 8 thumbnails from each of 100 product videos; 3 videos fail to download.97 × 8 = 776 frames × $0.002 = $1.552
3 failed videos = $0.00

Not charged:

  • The contact sheet and the metadata
  • Videos that fail to download or decode

Set a maximum cost per run and the actor never extracts more frames than that budget allows. You can set Maximum cost per run in the run options and the actor stops cleanly when it is reached.

FAQ

Questions

Which formats work?

Anything ffmpeg can decode: MP4/H.264, H.265/HEVC, VP9/WEBM, AV1, MOV, MKV, AVI, MPEG-TS, M4V and more.

How big can a video be?

500 MB by default, up to 4 GB with maxVideoSizeMb. count and interval decode only the frames they need; scenes scans every frame and takes longer.

Can I use YouTube or TikTok links?

No. Only direct file links are accepted; video platform pages are refused on purpose because their terms do not allow downloading.

Why is my first frame black?

Many videos fade in from black. Use count mode, which samples the middle of each segment, or auto, which adds scene and evenly spaced frames after it.

Can I get the images as files?

Yes. Every frame is a record in the run's key-value store, downloadable from the Storage tab or the API.

Try Video Frame Extractor on Apify

Apify's free plan includes monthly platform credit you can use to try it. Also callable from AI assistants through the Kanto Labs MCP server.

Run it on Apify