ScreenshotNeo

BlogHow-to

How to See a YouTube Thumbnail

See any YouTube thumbnail quickly, find its direct image URL, choose the best resolution, and retrieve it reliably with code.

By the ScreenshotNeo team1 October 20264 min read

How to See a YouTube Thumbnail

Short answer: Open the YouTube watch page and right-click (or long-press) the video preview. Choose Open image in new tab or Copy image address. For code, build https://i.ytimg.com/vi/VIDEO_ID/RESOLUTION.jpg, starting with maxresdefault.jpg and falling back when that rendition is unavailable.

1. See and save the thumbnail in a browser

  1. Open the video watch page, such as https://www.youtube.com/watch?v=VIDEO_ID.
  2. On desktop, right-click the preview and select Open image in new tab or Copy image address.
  3. On mobile, long-press the preview and choose the browser’s open or copy option.
  4. In the image tab, use the browser’s save-image command if you need a local copy.

The watch page already displays the thumbnail as the video preview. See YouTube’s thumbnail help.

2. Build a direct thumbnail URL

YouTube thumbnail URLs follow this pattern:

A video ID can resolve to several thumbnail renditions, with fallbacks when the largest is unavailable.
A video ID can resolve to several thumbnail renditions, with fallbacks when the largest is unavailable.
https://i.ytimg.com/vi/VIDEO_ID/RESOLUTION.jpg

Find the 11-character video ID in the v parameter of a watch URL, or as the final path segment in youtu.be and /shorts/ URLs.

Try these resolutions in order:

maxresdefault.jpg
sddefault.jpg
hqdefault.jpg
mqdefault.jpg
default.jpg

maxresdefault is not available for every video. If it fails, request the next fallback.

3. Retrieve thumbnails with the YouTube Data API

For applications handling many videos, request part=snippet. The snippet.thumbnails object can contain default, medium, high, standard and maxres, each with URL and dimension metadata when available. See Google’s videos resource reference.

cURL

curl --get 'https://www.googleapis.com/youtube/v3/videos' \
  --data-urlencode 'part=snippet' \
  --data-urlencode 'id=VIDEO_ID' \
  --data-urlencode 'key=YOUR_API_KEY'

Python

import requests
video_id = "VIDEO_ID"
r = requests.get("https://www.googleapis.com/youtube/v3/videos", params={"part":"snippet","id":video_id,"key":"YOUR_API_KEY"}, timeout=30)
r.raise_for_status()
items = r.json().get("items", [])
if not items: raise ValueError("Video not found or not accessible")
thumbs = items[0]["snippet"].get("thumbnails", {})
for name in ("maxres", "standard", "high", "medium", "default"):
    if name in thumbs:
        print(name, thumbs[name]["url"], thumbs[name].get("width"), thumbs[name].get("height")); break

Node.js

const params = new URLSearchParams({part:'snippet', id:'VIDEO_ID', key:'YOUR_API_KEY'});
const res = await fetch(`https://www.googleapis.com/youtube/v3/videos?${params}`);
if (!res.ok) throw new Error(`YouTube API returned ${res.status}`);
const data = await res.json();
const item = data.items?.[0];
if (!item) throw new Error('Video not found or not accessible');
const thumbs = item.snippet.thumbnails ?? {};
const chosen = ['maxres','standard','high','medium','default'].map(name => [name, thumbs[name]]).find(([, value]) => value);
console.log(chosen);

4. Resolution and aspect ratio

Object Typical dimensions Use
maxres 1280 × 720 Largest standard video thumbnail
standard 640 × 480 Larger fallback
high 480 × 360 General fallback
medium 320 × 180 Small previews

Video thumbnails are generally 16:9; Shorts use 9:16. YouTube recommends JPG or PNG, up to 3840 × 2160 for videos and 2160 × 3840 for Shorts, with a minimum width or height of 640 pixels.

5. Download a thumbnail in a script

curl -fL 'https://i.ytimg.com/vi/VIDEO_ID/maxresdefault.jpg' -o thumbnail.jpg

For batches, cache by video ID and resolution, limit concurrency and back off on transient errors. The Data API is preferable when you need explicit dimensions and availability.

6. Troubleshooting

Problem Cause Fix
Max-resolution URL fails No max-resolution rendition exists. Try sddefault, hqdefault, mqdefault or default, or read API objects.
Wrong image ID includes extra parameters or is from the wrong URL segment. Extract only the 11-character ID.
Empty API items Invalid, private or unavailable video. Verify the ID and handle it as unavailable.
API rejected Missing key, disabled API, quota or malformed parameters. Check Google Cloud settings, quota and URL encoding.
Saved file is not an image Error page or redirect was saved. Use curl -fL and inspect status and content type.
Thumbnail is blurry Only a lower rendition exists. Use the highest object returned; upscaling cannot add detail.

7. Rights and reuse

Viewing or downloading a thumbnail does not grant permission to republish it. Obtain permission or rely on a license or legal exception that applies to your use.

8. Or skip the browser setup

ScreenshotNeo captures the YouTube page with one request. It accepts cookie and consent banners and removes more than 60 known consent platforms, newsletter popups and chat widgets before capture. Bot checks, blank pages, timeouts, failed loads and cache hits are not billed, and X-Page-Verdict and X-Billed headers identify the result. An MCP server lets Claude, Cursor and other MCP clients take screenshots.

ScreenshotNeo cleans common overlays before returning a page capture.
ScreenshotNeo cleans common overlays before returning a page capture.

See the ScreenshotNeo API docs for full-page capture, waits, headers, cookies and output options.

cURL

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://www.youtube.com/watch?v=VIDEO_ID -o shot.webp

Python

import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key":"YOUR_API_KEY","url":"https://www.youtube.com/watch?v=VIDEO_ID"}, timeout=90)
open("shot.webp", "wb").write(r.content)

Node.js

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://www.youtube.com/watch?v=VIDEO_ID' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

1,000 screenshots per month are free with no card; paid plans start at $5 for 3,000. Create a free ScreenshotNeo account.

9. FAQ

Can I see a thumbnail without the YouTube app?

Yes. Use any browser and the preview context menu, or an i.ytimg.com URL.

Why is maxresdefault missing?

YouTube does not provide it for every video. Use a fallback or the highest API object available.

Can the thumbnail URL change?

The pattern stays the same, but the image can change when the creator updates the thumbnail.

Can I use it in my project?

Only with permission or a license or exception covering the planned reuse.