Skip to content

Video Thumbnail & Frame Extractor

Try for free

Save cover images and still frames from public YouTube, TikTok, Vimeo and Dailymotion videos and podcast episodes (Apple Podcasts, Spotify, RSS feeds). Pick exact times or evenly spaced frames; every image is stored with the run and gets a download link.

🖼️ Video Thumbnail & Frame Extractor

Save the cover image and still frames of public videos and podcast episodes. Paste YouTube, TikTok, Vimeo or Dailymotion links, podcast links (Apple Podcasts, Spotify, RSS feeds), or search by keyword. Pick exact times or a number of evenly spaced frames, and every image is stored with the run with a download link on its dataset row.

✨ Why use Video Thumbnail & Frame Extractor?

  • 🖼️ Covers at full size — the video thumbnail or the episode cover art at the largest size the platform publishes.
  • 🎞️ Frames where you want them — at exact times (1:30, 01:02:03, 90, 1m30s), at a share of the length (50%), or evenly spaced across the video.
  • ⚡ Only the frames are read — frames are read from the video by byte range, so a two-hour podcast is not downloaded for a few stills.
  • 🎙️ Podcasts too — episode cover art from Apple Podcasts, Spotify and any podcast RSS feed; video podcasts in a feed also give frames.
  • 🔎 Search — find YouTube videos or podcast episodes by keyword and take their covers and frames in one run.
  • 🔗 Ready download links — each image is saved as JPG, PNG or WebP with a link that works without a token for 7 days, plus the platform's own image link for covers.

🎯 Use cases

  • 🎨 Creative references — collect stills from videos and podcasts for mood boards and UGC-style ads.
  • 📰 Editorial images — pull episode cover art and frames for articles, newsletters and show notes.
  • 🤖 AI vision input — feed evenly spaced frames to an image model to describe or classify a video.
  • 📊 Thumbnail research — compare the covers of a channel or of the top search results for a topic.
  • 🗂️ Archives — keep the cover and key frames of public videos with their title, creator and date.

🚀 How to use

  1. Paste Video or episode links, or add Search terms and choose Search in (YouTube videos or podcast episodes).
  2. Keep Save the cover image on, and add Frames at these times and/or Evenly spaced frames.
  3. Choose the Frame size and Image format.
  4. Click Start.
  5. Open the dataset: each row is one image. Download it from imageFileUrl, or export the table as JSON, CSV or Excel.

📥 Input

FieldTypeDescription
videosarrayVideo links (YouTube videos, Shorts, playlists, channels; TikTok; Vimeo; Dailymotion; direct MP4) and podcast links (Apple Podcasts shows or episodes, Spotify episodes, RSS feeds).
searchTermsarrayKeywords to search instead of links.
searchSourcestringyoutube (default) or podcasts (Apple Podcasts episodes).
maxVideosintegerVideos or episodes per search term, playlist, channel, show or feed. Default 10.
includeCoverbooleanSave the cover image. Default on.
frameTimestampsarrayFrame times: 90, 1:30, 01:02:03, 1m30s or 50%.
evenlySpacedFramesintegerFrames spread evenly across each video. Default 0.
frameMaxHeightstringFrame size on the short side: 360p to 2160p. Default 720p.
imageFormatstringjpg (default), png or webp.
proxyConfigurationobjectResidential by default.

Example: the cover and three frames from the middle of a video podcast.

{
  "videos": [{ "url": "https://www.youtube.com/watch?v=jNQXAC9IVRw" }],
  "includeCover": true,
  "frameTimestamps": ["40%", "50%", "60%"],
  "frameMaxHeight": "720p",
  "imageFormat": "jpg"
}

📤 Output

One row per saved image:

{
  "imageType": "frame",
  "timestamp": "00:00:09.500",
  "timestampSeconds": 9.5,
  "imageFileUrl": "https://api.scrape.ly/v2/key-value-stores/<store>/records/youtube_jNQXAC9IVRw_frame_00009s500.jpg?signature=...&attachment=1",
  "imageUrl": null,
  "format": "jpg",
  "width": 320,
  "height": 240,
  "bytes": 14873,
  "title": "Me at the zoo",
  "creator": "jawed",
  "creatorUrl": "https://www.youtube.com/channel/UC4QobU6STFB0P71PMvOGN5A",
  "url": "https://www.youtube.com/watch?v=jNQXAC9IVRw",
  "platform": "youtube",
  "videoId": "jNQXAC9IVRw",
  "publishedAt": "2005-04-24",
  "durationSeconds": 19,
  "inputUrl": "https://www.youtube.com/watch?v=jNQXAC9IVRw",
  "searchTerm": null
}

Cover rows have imageType cover, no timestamp, and imageUrl set to the platform's own image link.

The run's OUTPUT record lists links that could not be read (failedInputs, with a code and the reason) and notes such as frame times after the end of a video or audio-only episodes.

CodeMeaning
NOT_FOUNDThe page or video was not found (removed or private).
NEEDS_LOGINThe video needs a login or a subscription.
AGE_RESTRICTEDThe video is age-restricted.
LIVE_NOT_SUPPORTEDA live stream or premiere.
DRM_PROTECTEDThe video is copy protected.
NO_VIDEO_FOUNDNo video or episode at the link.
NO_RESULTSA search, list or feed found nothing.
FRAMES_FAILEDThe video could not be read for frames.
READ_FAILEDThe site refused the video after three tries from fresh addresses.

💰 Pricing

You pay per saved image (a cover or a frame):

EventFreeStarterScaleBusiness
Image (per 1,000)$1.70$1.70$1.53$1.36

Links that fail, audio-only episodes asked for frames, and frame times after the end of a video are free.

Platform usage (compute, proxy) is included in the price; you pay the events only.

Worked example: the cover plus 5 evenly spaced frames from each of 10 videos is 60 images: $0.102 on Free, $0.0816 on Business.

❓ FAQ

How are frames read from long videos? The actor asks the video host for the parts of the file around each frame time, so a long episode is not downloaded whole. Hosts that only stream in segments are downloaded at the chosen frame size (up to 400 MB) and the frames are taken from that copy.

Which frame size do I get? The largest published picture at or below your choice, measured on the short side. An old video may only offer 360p even if you ask for 1080p.

Do podcast episodes give frames? Video podcasts do (YouTube video podcasts, and video episodes in an RSS feed). Audio-only episodes give their cover art; a frame request for them is listed in notes and not charged.

Do I need a login or my own proxy? No login and no cookies. Residential proxy is selected by default because video sites challenge datacenter addresses.

Can I use the API? Yes. Start a run and read the dataset through the Scrape.ly API, CLI, or from AI agents through the Scrape.ly MCP server, then fetch each imageFileUrl.

⚠️ Limits

  • Public videos and episodes only. Private, members-only and age-restricted videos are listed in failedInputs and not charged.
  • Live streams and premieres are not supported.
  • When a host does not allow reading parts of a file, frames need a download of the video at the frame size; videos over 400 MB at that size are skipped with FRAMES_FAILED.
  • Spotify episodes give the cover art and title only (no publishing date or frames).
  • Podcast search uses Apple Podcasts and returns up to 200 episodes per term, the most its search returns.
  • Saved image links expire after 7 days.

Related actors

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes.

No credit card. No setup calls.