Video Keyframe Extractor API: Scene Cuts, No Login avatar

Video Keyframe Extractor API: Scene Cuts, No Login

Pricing

from $6.00 / 1,000 video minutes

Go to Apify Store
Video Keyframe Extractor API: Scene Cuts, No Login

Video Keyframe Extractor API: Scene Cuts, No Login

Find every scene change in a video file and save one keyframe per scene, or a frame every N seconds. Rows give scene start and end timecodes, frame image links, a contact sheet, video metadata and optional on-screen text. $0.01 per video minute, $0.003 per frame.

Pricing

from $6.00 / 1,000 video minutes

Rating

0.0

(0)

Developer

Don Mangu

Don Mangu

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

16 days ago

Last modified

Categories

Share

Video Scene Keyframe Extractor

Video Keyframe Extractor finds every scene change in a video and saves one keyframe per scene, with the scene's start and end timecodes.

Video Scene Keyframe Extractor finds every scene change in a video and saves one keyframe per scene, with the scene's start and end timecodes. It can also save one frame every N seconds instead. Each run gives you a table of frames with image links, a contact sheet per video, video metadata (length, resolution, frame rate, codecs) and, if you ask for it, the on-screen text in each frame. Give it direct links to video files you own or have the right to process.

What can you do with a video keyframe extractor?

  • Video editors and archivists: get a shot list with timecodes for a long recording before you cut it.
  • Marketing and ad teams: break an ad into its shots to review pacing, or pull stills for thumbnails and storyboards.
  • AI and data teams: turn video into a small set of representative images for captioning, tagging or search, instead of feeding every frame to a model.
  • Course and webinar owners: capture every new slide in a recorded talk and read its title with on-screen text.

How to extract keyframes from a video

  1. Paste one or more direct video links into Video URLs (links that end in .mp4, .mov, .webm, .mkv and similar).
  2. Keep Frame selection on scene detection, or switch to one frame every N seconds.
  3. Optional: turn on Read on-screen text and pick the language.
  4. Start the run. Frames appear in the Keyframes table as they are saved; the contact sheet link is in each row.

How much does it cost to extract keyframes?

Pay per event. Nothing is charged for a video that fails to download or decode.

EventPriceWhen
Video minute analysed$0.01 per started minuteScene mode. Covers Full HD at 30 fps or smaller; 1440p, 4K or 60 fps video counts 2 to 8 units per minute because it takes longer to decode. All keyframes and the contact sheet are included.
Frame saved$0.003 per frameInterval mode.
On-screen text read$0.002 per frameOnly when the option is on and text is found.

Example: a 12-minute 1080p webinar in scene mode costs 12 x $0.01 = $0.12, whether it has 20 scenes or 50. The same video in interval mode with a frame every 30 seconds is 24 frames x $0.003 = $0.072. Apify platform usage is included in these prices. Set a spending limit on the run and the Actor stops cleanly before it.

Input example

{
"videoUrls": ["https://example.com/media/product-demo.mp4"],
"mode": "scenes",
"maxFramesPerVideo": 50,
"readOnScreenText": true,
"ocrLanguage": "eng"
}

Output example

{
"videoUrl": "https://example.com/media/product-demo.mp4",
"status": "ok",
"sceneNumber": 3,
"sceneStartTimecode": "00:00:41.208",
"sceneEndTimecode": "00:01:02.500",
"sceneDurationSeconds": 21.292,
"frameTimecode": "00:00:51.854",
"frameUrl": "https://api.apify.com/v2/key-value-stores/.../records/v0001-frame-0003.jpg",
"frameWidth": 1280,
"frameHeight": 720,
"onScreenText": "Set up in three clicks",
"scenesDetected": 14,
"contactSheetUrl": "https://api.apify.com/v2/key-value-stores/.../records/v0001-contact-sheet.jpg",
"videoDurationSeconds": 184.3,
"videoFps": 29.97,
"videoCodec": "h264",
"audioCodec": "aac"
}

Videos that fail get one row with a status such as not_found, not_video, file_too_large or platform_link and a plain-language error. The full run summary is in the STATS record.

Tips for better scene detection

  • Scene change sensitivity 27 suits most edited video. Lower it (15 to 20) for soft fades and slide decks; raise it (35 to 45) if camera motion creates too many scenes.
  • Minimum scene length merges very short scenes. Raise it to 2 or 3 seconds for fast-cut ads.
  • Use 4 GB of memory for most files and 8 GB for files over 1 GB.

Bulk lists

Use a long list of video links from an Apify Dataset or from a file. Pick the Dataset under Dataset with the list and write the name of its field under Field in the dataset. Leave the field name empty to use the first text field. Or paste the web address of a .txt, .csv or .json file under List file URL. A .csv file uses its first column. A header row is skipped. The file can be up to 10 MB. Entries from the Dataset and the file are added to the ones typed under Video URLs, and duplicates are removed. The price per result does not change.

  • Image to Text OCR, to read text from images you already have.
  • Kokoro Text to Speech, to add a voice track to a video script.

FAQ

Is it legal to extract frames from a video? The Actor only reads the files you link to. Use videos you own, have a licence for, or that are published under an open licence. It refuses links to video platform pages such as YouTube, TikTok or Instagram, and it follows each host's robots.txt.

Which formats work? Anything ffmpeg can read, including MP4 (H.264, H.265), MOV, WebM (VP8, VP9, AV1), MKV and AVI. Streaming playlists (HLS, DASH) are not supported; use a direct file link.

Is my video stored? The downloaded file is deleted when its frames are done. Frames and the contact sheet stay in your run's storage under your Apify data retention settings.

Why are no scenes found in my video? A single continuous shot is one scene. Lower the sensitivity or switch to interval mode.