Video Frame Extractor - YouTube, TikTok & MP4 to Images
Pricing
from $2.00 / 1,000 frame extracteds
Video Frame Extractor - YouTube, TikTok & MP4 to Images
Extract still frames from YouTube, TikTok, Instagram, Facebook, X or MP4 links: every N seconds, evenly spaced, scene changes, keyframes or exact times.
Pricing
from $2.00 / 1,000 frame extracteds
Rating
0.0
(0)
Developer
Seemu Scraping
Maintained by CommunityActor stats
0
Bookmarked
41
Total users
32
Monthly active users
10 days ago
Last modified
Categories
Share
Turn any video into still images. Paste a YouTube, TikTok, Instagram, Facebook or X link, or a direct MP4/WebM file, and get back sharp JPG, PNG or WebP frames: one every few seconds, a fixed number spread across the video, one per scene change, every keyframe, or the exact moments you choose.
Frames are cut straight from the video stream, so ten thumbnails from a one-hour video take seconds. You don't have to download the whole file first.
What you get
For every frame:
- The image itself: JPG, PNG or WebP, saved in the run's key-value store and shown right in the dataset table
- frameUrl: a direct link to the image, ready for spreadsheets, scripts or other tools
- timestampSec and timestamp (
00:01:23.500): exactly where in the video the frame comes from - frameIndex, width, height, imageFormat, kvKey
- sceneScore: how strong the shot change was (scenes mode)
- videoUrl, videoTitle, videoId, platform
For every video, one summary row (recordType: "video") with durationSec, framesExtracted, the contactSheetUrl grid image, transferredMb and minutesScanned.
Links that can't be processed (private, deleted, not a video) get a recordType: "notice" row explaining why. Notices are free.
Extraction modes
| Mode | What it does | Good for |
|---|---|---|
| Count | N frames spread evenly across the video | Thumbnails, previews, quick visual summaries |
| Interval | One frame every N seconds (e.g. every 5 s, or every 0.5 s) | Datasets, monitoring footage, step-by-step tutorials |
| Scenes | One frame at each shot change, with a sensitivity threshold | Storyboards, ad and trailer breakdowns, video indexing |
| Keyframes | The video's own keyframes (I-frames) | Fast, exact-to-the-encoder sampling |
| Timestamps | The exact times you list (90, 1:30, 00:02:15.5, 1m30s) | Grabbing specific moments you already know |
Every mode respects an optional start time and end time, and Max frames per video caps the output.
Use cases
- YouTube thumbnail research: pull frames from competitor videos to study composition and hooks
- Training data for computer vision: build labelled image datasets from hours of footage at a fixed frame rate
- Storyboards and shot lists: get one frame per scene from trailers, ads and short films
- Content moderation and review: scan a video in seconds with a single contact sheet instead of watching it
- Social media repurposing: turn TikToks and Reels into carousel images and blog illustrations
- Video SEO and indexing: attach timestamped preview images to chapters and search results
How to use
- Paste one or more links into Video URLs: YouTube videos and Shorts, TikTok, Instagram reels, Facebook, X, or direct video files.
- Pick an Extraction mode and set its option (number of frames, interval, scene sensitivity, or your timestamps).
- Optionally set a Start time / End time, the Image format, the Max frame width (default 1280 px; 0 keeps the original size) and turn on the Contact sheet.
- Run the actor. Frames appear in the Dataset tab as a table with image previews. The image files are in the Key-value store tab.
Contact sheets
Turn on Contact sheet to also get one grid image per video, with up to 100 frames side by side and each one stamped with its timestamp. You can review a whole video at a glance or drop the grid into a report.
Output format
Each frame row:
{"recordType": "frame","videoUrl": "https://www.youtube.com/watch?v=aqz-KE-bpKQ","videoTitle": "Big Buck Bunny 60fps 4K - Official Blender Foundation Short Film","videoId": "aqz-KE-bpKQ","platform": "youtube","mode": "scenes","frameIndex": 3,"timestampSec": 68.2,"timestamp": "00:01:08.200","sceneScore": 0.6596,"width": 1280,"height": 720,"imageFormat": "jpg","kvKey": "v1-aqz-KE-bpKQ-frame-0003.jpg","frameUrl": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/v1-aqz-KE-bpKQ-frame-0003.jpg","durationSec": 635,"proxyUsed": "none"}
Each video summary row:
{"recordType": "video","videoUrl": "https://www.youtube.com/watch?v=aqz-KE-bpKQ","videoTitle": "Big Buck Bunny 60fps 4K - Official Blender Foundation Short Film","durationSec": 635,"framesExtracted": 30,"contactSheetUrl": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/v1-aqz-KE-bpKQ-contact-sheet.jpg","transferredMb": 14.1,"minutesScanned": 11,"proxyUsed": "none"}
Filter on recordType to keep only frames when you export to CSV, Excel or Google Sheets.
Pricing
You pay per result, and failed or skipped videos are free:
- Frame extracted: per image saved
- Video processed: once per video that produced frames
- Minute scanned: scenes mode only, per started minute of video analysed for shot changes
- Megabyte downloaded: only when a video has to be fetched through the residential proxy (the actor tries free routes first); never charged otherwise
To keep costs down: lower Max frame width (smaller sources download faster), set a Start time / End time in scenes mode, and keep Proxy mode on Auto.
FAQ
Do I need to log in or provide cookies? No. The actor works with public videos only. Private, age-restricted and members-only videos are reported as notices.
How accurate are the timestamps? Frames are decoded at the exact time requested, not snapped to the nearest keyframe (except in keyframes mode, where the keyframe is the point).
Which platforms are supported? YouTube (including Shorts), TikTok, Instagram reels and video posts, Facebook videos, X/Twitter videos, many other video sites, and any direct link to an MP4, WebM, MOV, MKV or M3U8 stream. Live streams are not supported until they have ended.
What's the limit per run? Up to 100 videos per run and up to 1,000 frames per video. Max download per video (MB) (default 500) skips a video before it pulls an unexpectedly large amount of data.