Youtube Thumbnail Downloader Open Source avatar

Youtube Thumbnail Downloader Open Source

Pricing

Pay per usage

Go to Apify Store
Youtube Thumbnail Downloader Open Source

Youtube Thumbnail Downloader Open Source

Free Open Source YouTube thumbnail downloader — download high-quality thumbnails from any YouTube video. Supports HD (1280x720), SD, and all standard resolutions. Works with watch, shorts, and share links.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Epic Scrapers

Epic Scrapers

Maintained by Community

Actor stats

1

Bookmarked

13

Total users

2

Monthly active users

14 days ago

Last modified

Share

YouTube Thumbnail Downloader: save thumbnails from video URLs at up to 1280x720

YouTube Thumbnail Downloader takes a list of YouTube video URLs and saves each thumbnail as a JPG file in the run's key-value store. Every saved image also gets a dataset row with its size, dimensions and a public download link. It is for creators, designers, marketers and researchers who need the actual image files, not just links.

  • Five resolutions. maxresdefault (1280x720), sddefault (640x480), hqdefault (480x360), mqdefault (320x180) and default (120x90). Pick one or several per video.
  • All common URL formats. Watch, youtu.be, Shorts, embed and legacy /v/ links. Unrecognised URLs are logged and skipped.
  • Missing sizes are skipped, not saved as junk. YouTube serves a small grey placeholder when a size doesn't exist. The actor detects it and saves nothing for that size, so request several resolutions to get whichever exist.
  • Predictable file names. Files are saved as <prefix><videoId>_<resolution>.jpg, and the prefix is configurable.
  • Free to use, no login. No YouTube account, API key or browser. You pay only standard Apify platform usage.

Scope: This actor downloads thumbnails for URLs you provide. It does not search. To find videos by keyword and list their thumbnails, use YouTube Thumbnail Search Scraper. For transcripts or comments, see YouTube Transcript Scraper and YouTube Comments Scraper.

What can you do with YouTube Thumbnail Downloader?

GoalHow
Bulk download thumbnailsPaste many URLs in startUrls and open the key-value store for the images.
Get the best available sizeRequest maxresdefault and hqdefault together. Older videos often lack the largest size.
Link images in a sheetExport publicDownloadUrl from the dataset to Google Sheets or Airtable.
Organise files per projectSet filenamePrefix so each run's files are easy to tell apart.
Check image weightUse bytes, width and height to filter or compare sizes.

How it compares

What you needYouTube Thumbnail DownloaderManual right-click saveSingle-video web tools
Many videos at onceYesOne at a timeUsually one at a time
Several sizes per videoYesManualVaries
Metadata and file linksDataset row per imageNoneNone
AutomationSchedule and APINoRarely

Input

{
"startUrls": [
{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" },
{ "url": "https://youtu.be/dQw4w9WgXcQ" }
],
"resolutions": ["maxresdefault", "hqdefault"],
"filenamePrefix": "youtube-thumbnail-"
}
FieldTypeDescription
startUrlsarrayVideo URLs. Required.
resolutionsarrayAny of maxresdefault, sddefault, hqdefault, mqdefault, default. Default ["maxresdefault"].
filenamePrefixstringPrefix for key-value store file names. Default youtube-thumbnail-.

Output

One dataset row per saved image:

{
"videoId": "dQw4w9WgXcQ",
"sourceUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"resolution": "maxresdefault",
"thumbnailUrl": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg",
"width": 1280,
"height": 720,
"bytes": 65324,
"contentType": "image/jpeg",
"keyValueStoreKey": "youtube-thumbnail-dQw4w9WgXcQ_maxresdefault.jpg",
"publicDownloadUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/youtube-thumbnail-dQw4w9WgXcQ_maxresdefault.jpg",
"fetchedAt": "2026-06-22T08:26:59.755Z"
}
  • width and height are the standard size for that resolution key, not read from the file.
  • contentType is always image/jpeg.
  • A video and resolution with no real image produces no row.

Track thumbnails over time with scheduled runs

Running the same input again and comparing is where most of the value is. Apify can run the actor for you on a schedule and send the results wherever you need them.

1. Save your input as a task

Open the actor, set your input, then click Save as a new task. A task is a saved input you can run again with one click or on a schedule.

2. Schedule the task

In Apify Console, go to Schedules, click Create new, choose how often to run (for example daily at 06:00 in your time zone), and add your task. See Schedules and How to create a schedule.

Watch how to schedule an Actor:

Or schedule a saved task:

Common schedules:

Use caseFrequencyCron expression
Archive a competitor's thumbnailsWeekly (Monday)0 6 * * 1
Catch thumbnail swaps (A/B tests)Daily0 6 * * *

3. Send the results to a spreadsheet

Connect Google in the task's Integrations tab to save every run to Google Sheets or Google Drive automatically:

4. Compare runs

Every row has videoId, resolution and fetchedAt:

  • Thumbnail changes: compare bytes for the same videoId and resolution between runs. A different size usually means a new image.
  • Archive history: keep each run's files and use fetchedAt to date them.
  • Coverage: check which resolution values appear per videoId.

FAQ

How many thumbnails can I download per run?

The code sets no limit. Large runs take longer, since each image is fetched one after another.

Why is there no row for a video or size?

Either the URL wasn't recognised, or YouTube has no image at that size. Ask for several resolutions to get at least one.

Do I need a proxy, login or API key?

No. Images come from YouTube's public image servers at i.ytimg.com.

Can I search by keyword?

Use YouTube Thumbnail Search Scraper, then pass the video URLs here.

Thumbnails are public, but they belong to their creators. You are responsible for following YouTube's Terms of Service and copyright law when you reuse them.

Cost

The actor is free to use. You pay only the standard Apify platform usage for the run, which is small because it makes plain HTTP requests with no browser.

Support

Found a bug or need a feature? Open an issue in the Issues tab and include the run ID and your input.

This actor is not affiliated with, endorsed by or sponsored by YouTube or Google LLC. All trademarks belong to their owners.