YouTube Thumbnail Downloader

A Private Video's Thumbnail Is Not Withheld: It Is the Same 1,097 Bytes as a Typo

Every downloader FAQ says the same sentence — "only public videos" — and none of them shows what "no" actually looks like. We checked, on a video we uploaded ourselves and saved as private on 24 October 2026. The answer is not a refusal and not a blurred picture: it is the ordinary grey 120 × 90 placeholder, 1,097 bytes, with the same SHA-1 as the response for a video ID that has never existed. Ten file names, three image hosts, and the signed URL copied out of the private video's own page all returned that one file. So a downloader pointed at a private video cannot tell you it is private — it can only tell you it found nothing, which is the same thing it says when you mistype an ID.

Flat vector diagram: on the left a private video tile with a padlock and an arrow to a grey 120 by 90 placeholder labelled 1,097 bytes, on the right a public video tile with a play icon and an arrow to a blue 480 by 360 thumbnail labelled 11,841 bytes
Same file name, same host, same request. The private video answers with the placeholder that means "nothing here".

What we did, so you can repeat it

Four steps, in this order. Nothing on this page is inferred from how we think YouTube behaves.

The private video, file by file

Ten names. One answer. The byte count never varies and neither does the hash, which is the part that matters: a real JPEG of the same nominal size would not be 1,097 bytes.

Request on i.ytimg.comStatusBytesTypeSHA-1 (first 12)
/vi/9jEIbfAUtSw/maxresdefault.jpg4041,097image/jpeg6e902fa6302e
/vi/9jEIbfAUtSw/hq720.jpg4041,097image/jpeg6e902fa6302e
/vi/9jEIbfAUtSw/sddefault.jpg4041,097image/jpeg6e902fa6302e
/vi/9jEIbfAUtSw/hqdefault.jpg4041,097image/jpeg6e902fa6302e
/vi/9jEIbfAUtSw/mqdefault.jpg4041,097image/jpeg6e902fa6302e
/vi/9jEIbfAUtSw/default.jpg4041,097image/jpeg6e902fa6302e
/vi/9jEIbfAUtSw/maxres1.jpg4041,097image/jpeg6e902fa6302e
/vi/9jEIbfAUtSw/maxres2.jpg4041,097image/jpeg6e902fa6302e
/vi/9jEIbfAUtSw/maxres3.jpg4041,097image/jpeg6e902fa6302e
/vi_webp/9jEIbfAUtSw/maxresdefault.webp404552image/webp62302a6f7362

The WebP miss is a different file from the JPEG miss — 552 bytes instead of 1,097 — which is the second placeholder documented on the mobile page. Both are the same squares we get when a size simply does not exist. Nothing about the private state produces a third, special response.

A private ID and an invented ID are the same file

This is the comparison that decides what a downloader can honestly say. We requested the same names for ZZZZZZZZZZZ, an 11-character ID that has never been used by anyone.

ID requestedStatusBytesSHA-1 (first 12)What it is
9jEIbfAUtSw4041,0976e902fa6302ea real video, private
ZZZZZZZZZZZ4041,0976e902fa6302eno video at all

Identical status, identical length, identical hash. There is no header, no error body and no image difference that separates "this video exists but is private" from "this ID is nonsense". If a tool tells you a private video's thumbnail "could not be found", that statement is true but it carries no more information than telling you your typing was wrong. If a tool claims it did fetch one, look at what it hands back: at 1,097 bytes and 120 × 90 it is the placeholder, and the size test on the verification page will catch it.

The signed link does not help either

YouTube signs thumbnail addresses with sqp (and sometimes rs) tokens. It is reasonable to assume a signature issued for a private video would carry permission. It does not.

RequestResult
/vi/9jEIbfAUtSw/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg== (copied verbatim from the private video's own page)404 · 1,097 bytes · 6e902fa6302e
img.youtube.com/vi/9jEIbfAUtSw/hqdefault.jpg404 · 1,097 bytes · same hash
i9.ytimg.com/vi/9jEIbfAUtSw/hqdefault.jpg404 · 1,097 bytes · same hash

So the three hosts that normally return identical bytes stay identical here too — identically empty. A signature proves the URL was generated by YouTube; it does not grant access to the file behind it.

The private video's page still names the file — that is the trap

Here is the part that catches scraper builders. The watch page for the private video, fetched anonymously, still contains the thumbnail address in its HTML:

i.ytimg.com/vi/9jEIbfAUtSw/hqdefault.jpg — two occurrences in an 862,612-byte document.

For comparison, the public video's page (1,229,048 bytes) contains 110 ytimg.com references, mostly signed hqdefault addresses for the recommendation rail. So the address is written down on both pages, and on one of them it points at nothing. A scraper that extracts the first i.ytimg.com match will therefore "succeed" on a private video and save a grey square — and because that square is a valid 120 × 90 JPEG, nothing in the save step will complain.

What the same channel's public video returns

One variable changed: publication state. Same channel, same host, same request shape.

NameStatusBytesPixelsSHA-1 (first 12)
maxresdefault.jpg200106,8091280 × 7201ffd40f0ce74
hq720.jpg200106,8091280 × 7201ffd40f0ce74
sddefault.jpg20043,390640 × 4801ad8e98faa30
hqdefault.jpg20011,841480 × 3604b0c3536c8f1
mqdefault.jpg2007,406320 × 1801c9653e5f594
default.jpg2002,263120 × 909fbde11e730c

Two things in that table are worth keeping. The public video's maxresdefault and hq720 are byte-identical — 106,809 both, one hash — which is the alias case measured on the maxres variants page. And default.jpg is also 120 × 90, the same pixel size as the placeholder, at 2,263 bytes. Pixel dimensions alone do not tell you whether you are holding a real thumbnail; the byte count does.

An unfinished upload behaves the same way

Before the video was saved, while Studio still listed it as a draft, the same ten requests returned the same 404 and the same 1,097 bytes. A draft has an upload URL and even a video ID, and the image host treats it exactly like a private video — because at that point there is no published thumbnail to serve. If you are testing a downloader against your own brand-new upload and it "cannot find" the thumbnail, this is why: wait until it is published.

What the three biggest pages actually say

We saved both competitor sitemaps in full and vidiq's thumbnail category, then stripped scripts and styles: 23 HTML files, 21 article pages plus two copies of the category listing, 35,817 words. Counts for the whole corpus:

TermHitsWhere
private7three one-line FAQ answers on thumbload.net; four mentions inside a vidiq article about YouTube's A/B thumbnail testing, as an excluded category
unlisted3the same vidiq article twice, one A/B-testing workaround on youtubethumbnaildownloader.com
oEmbed0—
1,0970—
SHA-1 / hash0—

The three FAQs, quoted as written: "Can you download thumbnails from private videos? No, we only support public videos." · "Can I get thumbnail of private videos? No, only public videos possible." · "Is it possible to getting a Thumbnail preview of private videos? No, it only works for public videos." All three are correct. None of them says what the server returns, so none of them can help you tell a private video from a typo, and none of them tells you that the video's own page will still hand you a URL.

What we did not measure

Questions people actually ask

"So can I download the thumbnail of a private video?"
Not from the image host, and not with any downloader that relies on it — the files are not served. The only place the picture is visible is where the owner can see it, inside their own video's settings; that is an owner-only path, not something a public tool can do for you.

"But I found a URL for it. Why does it not work?"
Because the address exists as text and the file does not exist as a resource. The private video's own page printed i.ytimg.com/vi/9jEIbfAUtSw/hqdefault.jpg twice, and requesting that exact address returned 404 with 1,097 bytes.

"Does it help to sign the request?"
No. The signed ?sqp= URL lifted from the page returned the same 404 and the same 1,097 bytes.

"How do I know I am looking at the placeholder and not a small thumbnail?"
Two checks, both cheap: the byte count (a miss is 1,097 on the .jpg path, 552 on .webp) and the pixel count of the decoded file (120 × 90). A real default.jpg is also 120 × 90 but weighs 2,263 bytes, so use the byte count, not the dimensions.

"Will it work once the video is published?"
Yes, and immediately in our test: the same channel's published video answered 200 with real files on every rung of the ladder, up to 106,809 bytes at 1280 × 720.

Everything above was measured on 24 October 2026: one video uploaded and saved as private (9jEIbfAUtSw), ten file names requested on three image hosts, one signed URL replayed, one invented ID used as a control, and one published video on the same channel for contrast. The corpus counts come from re-fetching both competitor sitemaps and vidiq's category page on the same day; all three were byte-identical to the previous day's copies. We name no other channel and show no thumbnail image. The one state we could not set — unlisted — is listed above as unmeasured rather than described. Nothing here is an estimate.