Video Frame Extractor: Keyframes + On-Screen Text for AI avatar

Video Frame Extractor: Keyframes + On-Screen Text for AI

Pricing

$2.00 / 1,000 frames

Go to Apify Store
Video Frame Extractor: Keyframes + On-Screen Text for AI

Video Frame Extractor: Keyframes + On-Screen Text for AI

Extract keyframes from Instagram, TikTok, Facebook or any video link: scene changes, every N seconds or N evenly spaced, each with timestamp and the text on it, plus a free contact sheet. Image links ready for vision AI. $2 per 1,000 frames.

Pricing

$2.00 / 1,000 frames

Rating

0.0

(0)

Developer

FraserLabs

FraserLabs

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

4 days ago

Last modified

Share

Paste video links, get back the key frames as image links, each with its timestamp and the text visible on it, plus a contact sheet of the whole video. Ready for GPT-4o, Claude, Gemini or any vision pipeline.

$2 per 1,000 frames ($0.002 per frame). The contact sheet is free. Works with Instagram Reels, TikTok and Facebook links as well as direct video files. No login, no cookies.

What you can use it for

  • Feed video to vision models. Send 10-20 keyframes instead of a whole video: cheaper, faster and within context limits.
  • Ad and content research. See every scene of a competitor's Reel or TikTok at a glance, with the on-screen text already extracted.
  • Thumbnails and storyboards. Pick cover images, build storyboards, or check how a video is cut.
  • Dataset building. Collect labelled frames (timestamp + visible text) from many videos.

Why this Actor

This ActorTypical frame extractor
Instagram, TikTok and Facebook linksYes, paste the post linkDirect file links only
Scene-change keyframesYes (adaptive: few frames for a talking head, more for fast edits)Yes
Every N seconds / N evenly spacedYesYes
Text visible on each frameYes (on_screen_text)No
Contact sheet with timestampsYes, freeSometimes
Price$2 / 1,000 frames$2-6 / 1,000 frames, some add a per-run fee

Sample output

From a public National Geographic TikTok (scene mode, 32 s, shortened):

{
"url": "https://www.tiktok.com/@natgeo/video/7695025994326969614",
"platform": "tiktok",
"duration_s": 32.28,
"mode": "scenes",
"frame_count": 15,
"frames": [
{ "index": 1, "time_s": 2.5, "width": 576, "height": 1024,
"on_screen_text": "QUEENS Grandmother orcas use decades of experience to feed their families.",
"url": "https://api.apify.com/v2/key-value-stores/<run-store>/records/frame-7695025994326969614-001.jpg" },
{ "index": 3, "time_s": 5.0, "width": 576, "height": 1024,
"on_screen_text": "QUEEN Orcas are among the very few animals known to experience menopaus",
"url": "https://api.apify.com/v2/key-value-stores/<run-store>/records/frame-7695025994326969614-003.jpg" }
],
"contact_sheet_url": "https://api.apify.com/v2/key-value-stores/<run-store>/records/sheet-7695025994326969614.jpg",
"status": "ok"
}

Image links open without an Apify token, so you can pass them straight to a vision model. They stay available as long as the run's storage is kept (see your Apify data retention).

Output fields

FieldMeaning
frames[].urlJPEG link of the frame.
frames[].time_sPosition in the video, seconds.
frames[].on_screen_textText visible on the frame (titles, captions, slides). Empty when there is none or the option is off.
frames[].width, heightFrame size in pixels.
frame_countNumber of frames extracted (and charged).
contact_sheet_urlOne grid image with every frame and its timestamp (free).
platform, id, creator, title, duration_sSource metadata when available.
statusok, or error with an error message. Failed videos are not charged.

How to use it

  1. Paste one or more public video links into Video URLs: Instagram Reels, TikTok videos, Facebook Reels/videos, direct files (.mp4, .mov, .webm ...) or pages with an embedded video.
  2. Choose Which frames: scene changes (default), every N seconds, or N evenly spaced frames. Set Max frames per video (default 20).
  3. Click Start, then use the image links from the results, or download everything as JSON, CSV or Excel.

Input example:

{
"urls": ["https://www.tiktok.com/@natgeo/video/7695025994326969614"],
"mode": "scenes",
"maxFrames": 20,
"includeOnScreenText": true
}

A typical short video takes 3 to 15 seconds. Videos are processed one after another within a run.

Pricing

  • $0.002 per extracted frame ($2 per 1,000). A 30-second Reel in scene mode typically gives 6 to 18 frames ($0.012-0.036).
  • Max frames per video caps the cost of every video. The contact sheet is free.
  • Videos that fail (private, deleted, login-only, unavailable) are not charged. Videos longer than 60 minutes are skipped and not charged.
  • Set Maximum cost per run in the run options to cap your spend.

Settings

SettingDefaultWhat it does
Video URLs(required)Public video links, one per line.
Which framesscenesscenes, interval or count.
Max frames per video20Upper limit per video, all modes.
Seconds between frames5For interval mode.
Number of frames10For count mode.
Frame size720Short side in pixels (never upscaled).
Read text on each frameonAdds on_screen_text per frame.
Contact sheetonOne grid image per video (free).

Limitations

  • Public videos only. Private accounts, deleted posts and anything that needs a login return status: "error" and are not charged.
  • TikTok frames come from TikTok's public embed copy, which carries TikTok's moving watermark (the watermark text is removed from on_screen_text).
  • Facebook frames are often 360 px wide: for most Reels, Facebook only offers higher resolutions in a codec this Actor does not decode yet.
  • YouTube is not supported. Videos are limited to 60 minutes.
  • Need transcripts too? Use the sister Actors: Instagram, TikTok, Facebook or any audio/video link.

FAQ

Do I need an account or cookies on Instagram, TikTok or Facebook? No. The Actor reads only what any logged-out visitor can see.

Is this legal? The Actor processes publicly available videos and collects no personal data beyond the public post's creator name. You are responsible for how you use the output under the platform's terms and the laws that apply to you (e.g. copyright, GDPR).

Something wrong with a result? Open an issue on the Actor's Issues tab with the video URL. Reliability fixes ship within 24 hours.