Video Frame Extractor – Frames & Thumbnails from Any Video avatar

Video Frame Extractor – Frames & Thumbnails from Any Video

Pricing

from $0.80 / 1,000 frames

Go to Apify Store
Video Frame Extractor – Frames & Thumbnails from Any Video

Video Frame Extractor – Frames & Thumbnails from Any Video

Extract frames from video files: every N seconds, a set number of frames, exact timestamps or one per scene change. Make thumbnails, preview strips and frames for AI vision models. JPG, PNG or WebP with timestamps. Pay per frame.

Pricing

from $0.80 / 1,000 frames

Rating

0.0

(0)

Developer

Mohit Sawhney

Mohit Sawhney

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Categories

Share

What it does

Video Frame Extractor pulls still images out of video files. Give it links to videos and choose which frames you want:

  • Every N seconds, e.g. one frame every 5 seconds for a contact sheet or preview strip.
  • A set number of frames, spread evenly across the video, e.g. 10 thumbnails.
  • At exact timestamps, e.g. 1.5 s, 10 s and 62 s.
  • At each scene change, one frame per new shot, good for summaries and finding cover images.

Frames come back as JPG, PNG or WebP, optionally resized, each with its timestamp.

Common uses: video thumbnails, preview strips, training data for vision models, feeding frames to an AI model for video understanding, catalogue images from product videos, and checking footage without watching it.

How much it costs

You pay per frame saved. Scene-change mode also has a small charge per minute of video scanned, because it reads the whole video. See the Pricing tab for current prices. Videos that fail are not charged.

Set "Most frames per video" to cap how many frames a long video can produce.

Input

FieldWhat it means
Video file linksDirect links to MP4, MOV, WebM, MKV or AVI files. Page links from YouTube, TikTok or Instagram are not supported.
Which framesEvery N seconds, a set number, exact timestamps, or scene changes.
Seconds between framesFor "every N seconds".
Number of framesFor "a set number".
TimestampsFor "exact timestamps", in seconds.
Scene change sensitivityFor "scene changes". Lower finds more scenes; 0.3 suits most videos.
Image formatJPG, PNG or WebP.
Maximum widthShrink frames wider than this. Empty keeps full size.
Most frames per videoSafety cap. Default 100.

Example:

{
"videoUrls": ["https://example.com/product-demo.mp4"],
"mode": "count",
"frameCount": 12,
"imageFormat": "webp",
"maxWidth": 1280
}

Output

One row per frame:

{
"videoUrl": "https://example.com/product-demo.mp4",
"frameNumber": 3,
"timestampSeconds": 22.5,
"imageUrl": "https://api.apify.com/v2/key-value-stores/.../records/video-001-frame-00003.webp",
"videoWidth": 1920,
"videoHeight": 1080,
"error": null
}

If a video could not be processed, its row has error set and no frames.

Use it as an API

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("mvisiondigital/video-frame-extractor").call(run_input={
"videoUrls": ["https://example.com/product-demo.mp4"],
"mode": "scenes",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["timestampSeconds"], item["imageUrl"])

Good to know

  • Videos up to 2 GB.
  • Frames are stored in your own Apify storage.
  • Exact timestamps are matched to the nearest frame in the video.