YouTube Thumbnail Downloader

Paste any YouTube link and get the video's thumbnail in every size YouTube stores — one-click downloads, previews at real proportions, and honest "not available" labels for sizes YouTube never generated.

Get every thumbnail size for a video

Works with watch?v=, youtu.be, Shorts, embed, and live links — or a bare 11-character video ID.

This page does one narrow job: it turns a pasted YouTube link into the 5 thumbnail images YouTube stores for that video, checks which of them really exist, and gives you a one-click download for each one that does. The sections below explain the mechanism — how the link is read, where the images live, how a missing size is told apart from a real one, and why the download works at all — so you can predict what the tool will do before you paste. The download step itself has a dedicated walkthrough: How the one-click download works. The rest of the background lives in the guides.

How a link becomes a video ID

Every YouTube video is identified by an 11-character ID drawn from letters, digits, hyphen, and underscore — as a pattern, ^[A-Za-z0-9_-]{11}$. The tool never asks YouTube which video a link points at; it extracts the ID from whatever you pasted and validates it against that exact character set and length. The parser is a pure function with no network access, and it works in a fixed order. First it trims surrounding whitespace. If what remains already matches the ID pattern, it is accepted as a bare ID and no URL machinery runs. Anything with a space inside is rejected at once, because it can be neither an ID nor a web address. Otherwise the text is read as a URL — a missing https:// is added so that a youtube.com/watch?v=… paste still works — and the scheme is checked: only http and https qualify, which is what stops a javascript: address from smuggling a fake hostname past the check.

Next comes the host. Only the YouTube hosts the parser knows — youtube.com with its www, m, and music subdomains, youtube-nocookie.com, and the youtu.be short domain — are accepted, by exact match, so a lookalike such as youtube.com.evil.example fails because its hostname is not on the list. Finally the path decides where the ID lives: after v= on a watch page, as the first segment on youtu.be, or as the segment after /shorts/, /embed/, /live/, or the legacy /v/. Extra query parameters — timestamps, si= tracking strings, list= playlist context, feature= — are ignored, because the ID is all that is needed. The table below was produced at build time by calling the same parser the tool runs, using the illustrative ID jNQXAC9IVRw:

Pasted formInputID extracted
Watch link with extra parameters https://www.youtube.com/watch?v=jNQXAC9IVRw&t=42s&list=PLx&index=2 jNQXAC9IVRw
youtu.be share link with tracking query https://youtu.be/jNQXAC9IVRw?si=AbCdEf123&t=10 jNQXAC9IVRw
Shorts link with trailing slash and query https://www.youtube.com/shorts/jNQXAC9IVRw/?feature=share jNQXAC9IVRw
Embed link on youtube-nocookie.com https://www.youtube-nocookie.com/embed/jNQXAC9IVRw?rel=0 jNQXAC9IVRw
Live link https://www.youtube.com/live/jNQXAC9IVRw?feature=shared jNQXAC9IVRw
Mobile link pasted without a scheme m.youtube.com/watch?v=jNQXAC9IVRw jNQXAC9IVRw
Legacy /v/ path https://www.youtube.com/v/jNQXAC9IVRw jNQXAC9IVRw
Bare video ID jNQXAC9IVRw jNQXAC9IVRw

Rejections are just as deliberate. Rather than a generic "invalid link", each carries a code that names the reason and a message that says what to paste instead. A channel has many videos and a playlist has many videos, so neither identifies a single thumbnail; a watch link with only a list= parameter is a playlist in disguise; a twelve-character ID cannot be a video ID whatever the domain. These rows come from the same build-time call:

Pasted formInputRejection code
Playlist page https://www.youtube.com/playlist?list=PL590L5WQmH8dpP0RyH5pCfIaDEdt9nk7r playlist-url
Watch link with only a list= parameter https://www.youtube.com/watch?list=PL590L5WQmH8d playlist-url
Channel handle https://www.youtube.com/@youtube channel-url
Lookalike domain https://youtube.com.evil.example/watch?v=jNQXAC9IVRw not-a-youtube-url
Non-http scheme javascript://www.youtube.com/watch?v=jNQXAC9IVRw not-a-youtube-url
Twelve-character ID https://youtu.be/abcdefghijkl invalid-video-id
Free text watch this cool video not-a-youtube-url

The message shown under the field for each of those rows, word for word as the engine returns it:

  • Playlist page: "That is a playlist link, not a single video. Open a video in the playlist and paste its URL."
  • Watch link with only a list= parameter: "That watch link points at a playlist without a specific video (no v= parameter). Open the video itself and paste its URL."
  • Channel handle: "That is a channel link, not a video. Open one of the channel’s videos and paste that URL."
  • Lookalike domain: "That is not a YouTube link. This tool reads youtube.com and youtu.be URLs (or a bare video ID)."
  • Non-http scheme: "Only http(s) YouTube links are supported."
  • Twelve-character ID: "That link does not contain a valid video ID — YouTube IDs are exactly 11 letters, digits, hyphens, or underscores."
  • Free text: "That does not look like a YouTube link or video ID — check for stray spaces."

Two consequences are worth knowing. The parser does not check that a video exists — an ID that is well-formed but belongs to no video is accepted at this stage, and every size will normally come back missing in the next step. And the parser cannot rescue a link that was damaged in transit: an ID that lost a character in a chat app is rejected as invalid, so re-copy the link from the video page rather than retyping it.

The 5 sizes, and where they live

Once an ID is known, the image addresses are derived, not discovered. YouTube stores every video's thumbnail at predictable addresses under https://img.youtube.com/vi/{id}/, one file per size, each named by its size key. The tool does not scrape the video page and calls no API — it builds the 5 addresses directly from the ID and asks for each one. For jNQXAC9IVRw the set is:

Size keyLabelPixelsGenerated forAddress
default Default 120×90 Effectively every public video https://img.youtube.com/vi/jNQXAC9IVRw/default.jpg
mqdefault Medium quality 320×180 Effectively every public video https://img.youtube.com/vi/jNQXAC9IVRw/mqdefault.jpg
hqdefault High quality 480×360 Effectively every public video https://img.youtube.com/vi/jNQXAC9IVRw/hqdefault.jpg
sddefault Standard definition 640×480 Some uploads only https://img.youtube.com/vi/jNQXAC9IVRw/sddefault.jpg
maxresdefault Maximum resolution 1280×720 Some uploads only https://img.youtube.com/vi/jNQXAC9IVRw/maxresdefault.jpg

The "generated for" column is the one that matters. The first 3 sizes exist for effectively every public video. The last 2 — sddefault and maxresdefault — are generated only for some uploads, which is why the tool must probe them rather than assume them. There is no size larger than 1280×720: it is the ceiling of what YouTube serves back, so a site promising a "4K thumbnail download" is describing an image that does not exist. Downloads are named from the ID, the size key, and the pixel dimensions, so files never collide across sizes or videos — the largest size for this example saves as youtube-jNQXAC9IVRw-maxresdefault-1280x720.jpg.

Sizes that do not exist: the placeholder check

This is the part a careless tool gets wrong. When a size was never generated, YouTube does not return an empty response. It answers with HTTP 404 — but the body of that 404 is a gray 120×90 placeholder image. A plain <img> tag renders it without complaint, and a careless tool will offer that gray rectangle as a "1280×720 download". This tool checks two independent signals before it believes a size exists: the HTTP status of the fetch, and the pixel width of the image after decoding it. A request for maxresdefault that decodes to 120 pixels wide is a placeholder, whatever the status said. The decision is a small pure function with its own tests, and every row below is its real output for the situation described:

Size requestedWhat came backVerdict
maxresdefault (1280×720) HTTP 404 — the normal answer for a size YouTube never generated missing
maxresdefault (1280×720) A success status, but the bytes decode to 120×90 (the placeholder) missing
maxresdefault (1280×720) A success status and a 1280×720 decode available
default (120×90) A success status and a 120×90 decode — legitimate, because this size is 120×90 available
sddefault (640×480) A success status, but the bytes would not decode as an image undecodable
sddefault (640×480) A success status and a 480×360 decode — narrower than requested, wider than the placeholder available

Two rows deserve a closer look. The default size is itself 120×90, so a decode at placeholder dimensions there is legitimate and is not flagged — the rule is "smaller than requested and no wider than the placeholder", not simply "small". And the last row shows the check's deliberate limit: it targets the placeholder specifically, so a decode that is narrower than requested but wider than the placeholder is still accepted. The tool is a placeholder detector, not a general dimension audit. Only sizes that pass get a download button; the rest are labeled "not available for this video", and a size whose bytes would not decode at all is reported as undecodable rather than guessed at.

Why the download works at all — and the honest fallback

A web page cannot normally read image bytes from another domain; the browser blocks it unless the other server explicitly allows it, through the mechanism called CORS. YouTube's image server sends Access-Control-Allow-Origin: * on thumbnail responses — verified empirically, as the methodology page records — which is what lets this page fetch the image in your browser, decode it to run the placeholder check, and hand you the bytes as a real one-click download from an in-memory copy. The full sequence, step by step, is in How the one-click download works.

That permission is YouTube's to grant, and some environments interfere with it: a browser extension that rewrites requests, or a corporate proxy that strips CORS headers. When the fetch itself fails, the tool does not pretend. It falls back to probing the address with an ordinary image element, which still exposes the placeholder through the decoded width but yields no downloadable bytes, and the card shows an "Open image" link to the original YouTube address with a save instruction instead of a download button. The status line says so explicitly, so you know which mode you are in. What the tool never does is show a download button it cannot honour.

What leaves your browser

Nothing reaches this site. The parser runs as JavaScript on your device, and the only network requests are your own browser asking img.youtube.com for the 5 images — the same kind of request it makes whenever you browse YouTube. There is no server on this site that receives the link, no log of what was pasted, and no account. You can confirm this yourself: open your browser's developer tools, watch the network panel, and paste a link. The downloaded file is assembled from an in-memory copy of the fetched bytes, and that copy is released when you run a new lookup or reset the form.

Reading the result

After a lookup, the status line reports how many of the 5 sizes exist — for a video with only the guaranteed sizes it reads "3 of 5 sizes available", with the remaining 2 noted as not generated by YouTube. That is not an error, and re-running the lookup will not change it: the missing sizes were never created, and the tool can only show what YouTube serves. Each card previews its image at real proportions, which makes a second thing visible — not every stored size is 16:9. The frames are described below by the same ratio engine that powers the aspect ratio calculator, together with how tall a 16:9 picture is at each width and what a 16:9 "cover" slot — the ratio Google's help documentation recommends, verified July 25, 2026 on the size guide — would crop if the file were dropped into it unchanged:

Size Frame Ratio 16:9 height at this width Cover crop in a 16:9 slot
default 120×90 4:3 68 (rounded) 25% of its height
mqdefault 320×180 16:9 180 None — exact 16:9
hqdefault 480×360 4:3 270 25% of its height
sddefault 640×480 4:3 360 25% of its height
maxresdefault 1280×720 16:9 720 None — exact 16:9

So hqdefault and sddefault are stored in 4:3 frames, taller than a 16:9 picture of the same width needs (480 wide wants 270 rows, not 360). Dropped unchanged into the thumbnail tester's 16:9 cover slot, a 4:3 frame loses 25% of its height — that is the crop report's figure for the slot the tester draws, not a statement about what YouTube does with an upload. The stored sizes that are exactly 16:9 are mqdefault and maxresdefault, and the table shows them with no crop at all.

Where this tool stops

It reads public images that YouTube currently serves, and nothing else. If YouTube no longer serves a video's images — as is usually the case for deleted or private videos — every size will normally come back missing. It cannot produce a size YouTube did not generate, enlarge a smaller one, or fetch anything from a channel or playlist page. It handles one video per lookup — paste a new link to start the next, which also discards the previous images from memory. It knows only the ID, not the title or the owner, because the only requests it makes are for the images themselves. Every accepted form, every rejection class, and every verdict class on this page is pinned by an automated test suite, and the figures in the tables are computed at build time by the same engine that runs when you press the button — if the engine changed, this page would change with it or fail to build.

The creator's. A thumbnail is artwork uploaded (or a frame chosen) by the person who published the video, and downloading a copy does not change who owns it. The legitimate uses this tool is built for: recovering your own thumbnails when the source file is gone, keeping backups, and studying what works in your niche as research. If you want to reuse someone else's thumbnail, ask them — "it was publicly served" is not a license. ThumbnailPro is not affiliated with or endorsed by YouTube or Google, and this site deliberately uses no YouTube branding.

Frequently asked questions

Which thumbnail sizes does YouTube actually store?

YouTube stores five sizes per video: default (120×90), mqdefault (320×180), hqdefault (480×360), sddefault (640×480), and maxresdefault (1280×720). The first three exist for effectively every public video; sddefault and maxresdefault are generated only for some uploads. There is no secret 4K thumbnail — 1280×720 is the ceiling.

What does "not available for this video" mean on a size card?

That the size failed the placeholder check. The two largest sizes, sddefault and maxresdefault, exist only for some uploads, and when a size is missing YouTube answers the request with a gray 120×90 placeholder image instead of the thumbnail. This tool checks each size and labels missing ones honestly rather than letting you download that placeholder, and re-running the lookup will not change the label. The guide "How the one-click download works" walks through the check step by step.

Which links does the parser understand?

Standard watch URLs (youtube.com/watch?v=…), youtu.be share links, Shorts, embed, and /live/ URLs, plus a bare 11-character video ID. Channel and playlist links are rejected with an explanation, because they do not identify a single video.

Is downloading a thumbnail legal?

The images are served publicly by YouTube, but the artwork belongs to the video’s creator. Downloading your own thumbnails, keeping backups, or studying designs for research is the intended use. Republishing someone else’s thumbnail may require their permission — when in doubt, ask the creator.

Does the video URL I paste get sent to this site?

No. The link is parsed by JavaScript in your browser, and your browser then requests the images directly from YouTube’s image servers — the same requests it makes when you browse YouTube. This site has no server that sees your input.

Can I get a thumbnail for a deleted or private video?

Usually not. YouTube removes or blocks thumbnails for deleted and private videos, so all sizes will come back unavailable. This tool can only show what YouTube still serves.

Why do hqdefault and sddefault look 4:3 instead of 16:9?

Because those two frames are 4:3: 480×360 and 640×480 both simplify to 4:3, while a 16:9 picture 480 pixels wide needs only 270 rows. The card previews each file at its real proportions rather than stretching it. The stored sizes that are exactly 16:9 are mqdefault and maxresdefault; dropped unchanged into the thumbnail tester's 16:9 cover slot, a 4:3 frame loses 25% of its height, which is the crop report's figure for that slot rather than a claim about what YouTube does with an upload.

What is the downloaded file called?

The video ID, the size key, and the pixel dimensions, so files from different videos and sizes never collide and sort sensibly in a folder. For the example ID on this page, the largest size saves as youtube-jNQXAC9IVRw-maxresdefault-1280x720.jpg. The bytes are exactly what YouTube served — the tool re-encodes nothing.

Links are parsed locally in your browser and never transmitted to this site; your browser fetches the images directly from YouTube. How each check works — including the placeholder-detection trick — is documented on the methodology page.