Skip to content

Guide

Why maxresdefault.jpg Is Missing for Some YouTube Videos

You ask for the full-size thumbnail and get a little grey box. Here's what's going on, how to spot it, and what to use instead.

Last updated: · 6 min read · By The AI Barn

If you've ever built a link like https://i.ytimg.com/vi/VIDEO_ID/maxresdefault.jpg to grab a high-resolution YouTube thumbnail, you've probably met the grey box. For some videos the address works and returns a sharp 1280 × 720 image. For others it returns a tiny grey rectangle with three dots. This guide explains what that grey image is, why it appears, how to detect it reliably, and what to use instead. It's written for viewers using a thumbnail downloader, and for developers who show YouTube thumbnails on their own sites.

What the grey image actually is

When you request a thumbnail size that doesn't exist for a video, YouTube's image server doesn't return an empty response. It returns an HTTP 404 Not Found status together with a small JPEG image: a 120 × 90 grey placeholder. We confirmed this in October 2026 by requesting every standard size for YouTube's first-ever upload, "Me at the zoo" (video ID jNQXAC9IVRw):

File requestedHTTP statusImage returned
maxresdefault.jpg404120 × 90 placeholder
sddefault.jpg404120 × 90 placeholder
hqdefault.jpg200480 × 360 real thumbnail
mqdefault.jpg200320 × 180 real thumbnail
default.jpg200120 × 90 real thumbnail

Because browsers will usually still display an image that arrives with a 404 status, a web page that simply drops the URL into an <img> tag shows the grey box instead of an error. That's why so many sites end up displaying grey thumbnails without realising.

Why some videos don't have it

YouTube doesn't document its thumbnail file names, so nobody outside YouTube can give a definitive answer. These are the patterns that hold up in practice:

Because this behaviour isn't documented, treat it as something to handle in code, not something to predict.

How to detect the placeholder

In the browser

The most reliable check is to look at the image's real dimensions once it has loaded. If you asked for maxresdefault.jpg and the image's naturalWidth is 120, you got the placeholder. In outline:

img.onload = () => {
  if (img.naturalWidth === 120 && img.naturalHeight === 90) {
    // placeholder: fall back to a smaller size
    img.src = img.src.replace('maxresdefault', 'hqdefault');
  }
};
img.onerror = () => { /* treat as missing too */ };

Only apply the 120-pixel check to sizes that should be bigger. default.jpg is legitimately 120 × 90. Our downloader uses exactly this check and labels missing sizes "Not available" instead of offering a grey box.

On a server

If your code fetches thumbnails on a server, check the HTTP status code. A 404 means the size doesn't exist, even though a body was returned. Don't rely on the response having a body, or on its content type: the placeholder is a real JPEG.

What to use instead

A sensible fallback order for a 16:9 display is:

  1. maxresdefault.jpg: 1280 × 720, 16:9, no bars;
  2. sddefault.jpg: 640 × 480 with black bars; crop to 16:9 (about 640 × 360);
  3. hqdefault.jpg: 480 × 360 with black bars; crop to about 480 × 270;
  4. mqdefault.jpg: 320 × 180, 16:9, no bars.

If you show thumbnails with CSS, you can hide the black bars of the 4:3 sizes without editing the image: put the image in a 16:9 box and use object-fit: cover, which crops the bars off the top and bottom.

If you're a viewer who wants a sharp copy of a particular thumbnail, and you have a legitimate reason and permission to use it, the best source is the creator. Creators often keep the original artwork, and YouTube now recommends uploading thumbnails at up to 3840 × 2160, far larger than any public copy.

A note on the "hq720" and other variants

Inspecting YouTube's own pages turns up other file names, such as hq720.jpg, and numbered frame grabs like 1.jpg, 2.jpg and 3.jpg. Some of these work for some videos (for "Me at the zoo", hq720.jpg also returned 404). Because they're undocumented and change over time, we stick to the five long-standing sizes in our tool and recommend you do the same in your own code. If you do use other variants, apply the same "check the real size" rule.

Caching and changed thumbnails

When a creator changes a video's thumbnail, YouTube notes that it can take time for the change to appear. During that period, different sizes can briefly show different versions, and your browser or a CDN may have cached an older copy. If a thumbnail looks out of date, reload the page or add a harmless query string (for example ?t=2) to bypass your own browser's cache.

If you only need a preview on your own site

Developers often fetch thumbnails to build a "click to play" preview for an embedded video, so the full YouTube player only loads when someone clicks. If that's what you're doing, the same fallback rules apply, but also remember that the embedded YouTube player shows the video's own thumbnail automatically. For a single video on a page, a standard embed is often simpler, and it keeps you within what YouTube's Terms expressly allow. If you do build a lightweight preview, link it to the video on YouTube or swap in the real player on click, and keep the video's title visible so viewers know what they're about to watch.

Summary

The tests in this guide were run by GrabYTthumb on 22 October 2026 against YouTube's public image server. YouTube may change how it serves thumbnails without notice.