Thumbnail Maker
Design a thumbnail on a real canvas — templates, outlined text, shapes, and in-browser background removal — then export under your platform’s size limit. Nothing is uploaded.
Download any video's thumbnail in every size YouTube stores, test how your own design reads at real display sizes before you publish, and get sizing right the first time. Every tool runs on your device — no account, no watermarks, and honest labels when a size simply does not exist.
Paste any YouTube link — watch page, youtu.be share, Shorts, embed, or live URL — and get the video's thumbnail in all 5 sizes YouTube stores, up to 1280×720. Sizes YouTube never generated for that video are labeled "not available" instead of handing you a gray junk image. For the full guide and FAQ, see the dedicated Thumbnail Downloader page.
Works with watch?v=, youtu.be, Shorts, embed, and live links — or a bare 11-character video ID.
All 6 tools are listed below, each with its own page, worked examples, and honest caveats — what the platform actually stores, what the interface covers up, and where the official rules end and convention begins. The Thumbnail Maker and the Background Remover are the two that create rather than inspect; both run their models on your device.
Design a thumbnail on a real canvas — templates, outlined text, shapes, and in-browser background removal — then export under your platform’s size limit. Nothing is uploaded.
Cut a photo’s background out entirely on your device — an on-device person-segmentation model this site hosts itself, so it shines on people and is honest about products and pets. Transparent PNG or a solid color; nothing is uploaded.
Paste any YouTube link and get the thumbnail in every size YouTube stores — with honest “not available” labels instead of junk placeholders.
Preview your thumbnail inside realistic video-platform mockups at true display sizes — A/B two designs, check small-size legibility and grayscale contrast.
The current official size rules, verified against Google’s documentation, plus an interactive safe-area checker for overlay-covered corners.
Enter a width and get the exact height for 16:9 and other common ratios — with the rounding shown, not hidden.
Every YouTube video is identified by an 11-character ID drawn from letters, digits,
hyphen, and underscore — the parser validates it against exactly
^[A-Za-z0-9_-]{11}$ — and every stored thumbnail lives at a predictable address
under https://img.youtube.com/vi/{id}/. The downloader therefore
has three jobs: extract the ID from whatever you pasted, derive the
5 addresses, and find out which of them YouTube actually generated for that
video. The first two are pure functions, and the decision in the third — whether what came back
is the real image or the placeholder — is a pure function too; only the fetch itself touches the
network. All three decisions have their own test matrix. The table below was produced by running
the real parser at build time on 10 inputs (6 accepted, 4 rejected), so it shows the tool's actual verdicts and its actual wording rather than a description
of them.
| Pasted input | Form | Verdict | What the tool says |
|---|---|---|---|
https://www.youtube.com/watch?v=jNQXAC9IVRw&t=42s | watch link with a timestamp | Accepted — video ID jNQXAC9IVRw | Thumbnails derived under img.youtube.com/vi/jNQXAC9IVRw/ |
https://youtu.be/jNQXAC9IVRw?si=share-tracking | share link with a tracking string | Accepted — video ID jNQXAC9IVRw | Thumbnails derived under img.youtube.com/vi/jNQXAC9IVRw/ |
youtube.com/shorts/jNQXAC9IVRw | Shorts path, no scheme | Accepted — video ID jNQXAC9IVRw | Thumbnails derived under img.youtube.com/vi/jNQXAC9IVRw/ |
https://www.youtube.com/embed/jNQXAC9IVRw | embed path | Accepted — video ID jNQXAC9IVRw | Thumbnails derived under img.youtube.com/vi/jNQXAC9IVRw/ |
https://www.youtube.com/live/jNQXAC9IVRw | live path | Accepted — video ID jNQXAC9IVRw | Thumbnails derived under img.youtube.com/vi/jNQXAC9IVRw/ |
jNQXAC9IVRw | bare 11-character ID | Accepted — video ID jNQXAC9IVRw | Thumbnails derived under img.youtube.com/vi/jNQXAC9IVRw/ |
https://www.youtube.com/playlist?list=PLexample | playlist, no single video | Rejected (playlist-url) | That is a playlist link, not a single video. Open a video in the playlist and paste its URL. |
https://www.youtube.com/@somechannel | channel handle | Rejected (channel-url) | That is a channel link, not a video. Open one of the channel’s videos and paste that URL. |
https://youtube.com.evil.example/watch?v=jNQXAC9IVRw | lookalike domain | Rejected (not-a-youtube-url) | That is not a YouTube link. This tool reads youtube.com and youtu.be URLs (or a bare video ID). |
javascript://www.youtube.com/watch?v=jNQXAC9IVRw | non-http scheme | Rejected (not-a-youtube-url) | Only http(s) YouTube links are supported. |
Rejections are specific on purpose. A playlist or channel link is not malformed; it simply
does not name a single video, so the message says which page to open instead. A lookalike host
such as youtube.com.evil.example fails the host check outright, and a
javascript: scheme is refused before the hostname is even examined, because a scheme
like that can smuggle a fake host past naive checks.
For the ID jNQXAC9IVRw — the illustrative one from the engine's own documentation —
the derived set is:
| Size | Key | Pixels | Exists for | URL |
|---|---|---|---|---|
| Default | default | 120×90 | effectively every public video | https://img.youtube.com/vi/jNQXAC9IVRw/default.jpg |
| Medium quality | mqdefault | 320×180 | effectively every public video | https://img.youtube.com/vi/jNQXAC9IVRw/mqdefault.jpg |
| High quality | hqdefault | 480×360 | effectively every public video | https://img.youtube.com/vi/jNQXAC9IVRw/hqdefault.jpg |
| Standard definition | sddefault | 640×480 | some uploads only | https://img.youtube.com/vi/jNQXAC9IVRw/sddefault.jpg |
| Maximum resolution | maxresdefault | 1280×720 | some uploads only | https://img.youtube.com/vi/jNQXAC9IVRw/maxresdefault.jpg |
3 of the 5 — default (120×90), mqdefault (320×180) and hqdefault (480×360) — exist
for effectively every public video. The 2 largest, sddefault (640×480) and maxresdefault (1280×720), are generated only for some uploads, and maxresdefault at 1280×720 is the
ceiling: there is no larger stored thumbnail to fetch, whatever a "4K download" button elsewhere
implies. Note also the storage frames: sddefault is stored in a
4:3 frame (640×480) while maxresdefault is
16:9, which is why the aspect calculator lists 4:3 as "Older video; sddefault storage frame".
When a size is missing, YouTube answers with HTTP 404 — but the body of that response is a
gray 120×90 placeholder image, which a plain
<img> tag renders without complaint. A tool that only checks whether an image
appeared will offer that placeholder as a download. This one checks two signals for every size:
the HTTP status of the fetch and the decoded pixel width of what came back, and both must pass.
The verdicts below come from the same classification function the tool runs, fed the probe results
it would see:
| Size requested | What the probe saw | Verdict | Why |
|---|---|---|---|
maxresdefault (1280×720)
| status OK, 1280×720 decoded | available | the status is OK and the decoded width matches the size that was requested |
maxresdefault (1280×720)
| status not OK, nothing decodable | missing | YouTube answered 404, which is what it does for a size it never generated |
maxresdefault (1280×720)
| status OK, 120×90 decoded | missing | the status is OK but the decoded image is only the placeholder’s width, far below what was asked for |
default (120×90)
| status OK, 120×90 decoded | available | the default size really is 120×90, so a small decode is legitimate there |
maxresdefault (1280×720)
| status OK, nothing decodable | undecodable | bytes arrived but would not decode as an image, so no download is offered |
The default row is the one to notice: that size genuinely is
120×90, the same dimensions as the placeholder, so the check compares the decoded
width against the size that was requested rather than against a fixed number. Only
available earns a download button; missing is labeled "not available for
this video", and undecodable is reported rather than guessed at.
A page can only read image bytes from another domain if that domain's server explicitly allows
it. YouTube's image server sends Access-Control-Allow-Origin: * on thumbnail responses
— verified empirically — which is what lets your browser fetch each image, decode it to run the
check above, and hand you a real download rather than a bare link. The request goes from your browser
straight to YouTube, exactly as it does when you browse YouTube; this site's servers never see the
link. If something in your environment strips those headers — an aggressive extension, a corporate
proxy — the tool degrades honestly: it shows "Open image" links to the original YouTube URLs with
a save instruction, rather than pretending a download happened.
Two kinds of number appear in the tester and the size guide, and the site keeps them apart. Official figures — the 16:9 ratio, the 640-pixel minimum width, the upload size limits — come from Google's help article "Add video thumbnails", and the size guide cites them with the date they were last re-checked (July 25, 2026). Typicals are everything else: measurements of how video platforms currently size a surface or place an overlay, which shift by a few pixels with every redesign. Every typical on this site is labeled as typical and is never presented as a specification.
The thumbnail tester renders your image at true display pixel sizes for 4 surfaces — home grid card (desktop) at 320×180, suggested / sidebar row at 168×94, search result row at 246×138, mobile list row at 160×90 — plus a legibility strip at 120 px, 168 px, 246 px wide, inside deliberately generic mockups (neutral grays, no logo, no cloned iconography, because YouTube's interface is YouTube's property). Every one of those sizes is a typical. The slots are 16:9, so an image of any other shape is shown the way a "cover" fit would show it, and the tool reports which axis loses pixels and by how much:
| Image | Pixels | Ratio | In a 16:9 slot |
|---|---|---|---|
| the maker’s YouTube canvas | 1280×720 | 16:9 | Fits — nothing cropped |
| a 1080p frame grab | 1920×1080 | 16:9 | Fits — nothing cropped |
| YouTube’s sddefault storage frame | 640×480 | 4:3 | Loses 25% of its height |
| the maker’s square canvas | 1080×1080 | 1:1 | Loses 43.8% of its height |
| the maker’s vertical canvas | 1080×1920 | 9:16 | Loses 68.4% of its height |
| a 21:9 frame (ultra-wide banners) | 1680×720 | 7:3 | Loses 23.8% of its width |
The ratio column is the proportion in lowest terms — the form the engine's ratio report returns — which is why the 21:9 frame appears as 7:3: the same shape with the common factor divided out. 16:9 has no common factor, so it appears unchanged.
The safe-area checker on the size guide works the same way. YouTube publishes no overlay specification; the checker models the convention — a duration badge bottom-right, hover controls top-right, a watched-progress bar along the bottom edge — at typical proportions, and every zone's label says so. For a 1280×720 image the rectangles it draws, in pixels from the top-left corner, are:
| Zone | Left | Top | Width | Height |
|---|---|---|---|---|
| Duration badge (typical) | 998 | 619 | 282 | 101 |
| Hover controls (typical) | 1075 | 0 | 205 | 216 |
| Watched-progress bar (typical) | 0 | 684 | 1280 | 36 |
Read them as "keep important content out of here", not as exact pixels; the same fractions of the frame apply at every image size.
The aspect ratio calculator is pure arithmetic — height = width × ratio-height ÷ ratio-width — and its one honesty rule is to show rounding rather than hide it. At 16:9, a width of 1280 gives exactly 720; a width of 1000 wants 562.5, which is not a whole pixel, so the calculator reports 563 and flags it as rounded. Going the other way, a height of 1080 needs a width of 1920. Dimensions above 100,000 pixels are refused rather than silently computed, and the calculator answers for 6 ratios at once — 16:9, 4:3, 1:1, 9:16, 21:9, 4:5.
The thumbnail maker is a canvas editor split in two: a pure, tested engine owns every decision — the versioned document model, the transform geometry, snap guides, undo/redo, the deterministic templates, and the export planner — and the browser layer only draws that document onto a canvas and forwards pointer and keyboard events. It offers 3 canvas sizes of its own, each named for the surface it is sized for rather than quoted from any platform's documentation (YouTube — 1280×720; Shorts / Reels / TikTok — 1080×1920; Instagram post — 1080×1080), 10 templates (Shock, Versus, Tutorial, Drama, Listicle, Reaction, Before / After, Gaming, Minimal, Question) that are plain data rather than AI, and 3 self-hosted fonts (Archivo Black, Inter, Baloo 2), all SIL Open Font License releases. Exports respect a size cap you choose; the default is "2 MB — safe everywhere (YouTube’s mobile-upload limit)", per Google's help documentation as cited on the size guide (verified July 25, 2026). JPG encoding binary-searches quality until the file fits, an unreachable cap is reported instead of ignored, and every export is re-decoded and dimension-checked before the download is offered, with the real byte size displayed. Your design autosaves to this browser's localStorage, and a corrupted autosave is rejected with a fresh start rather than rendered.
Background removal — inside the maker and as the standalone
background remover — runs segmentation models on your device,
from model files this site hosts itself under /vendor/. The remover accepts PNG, JPG, WebP images up to 20 MB and offers 3 tiers, each labeled with its real first-use
download measured from the served files at build time: "Fast — people (auto)" (~11.7 MB on first use), "Click the subject" (~17.7 MB on first use), and "Best quality — any subject" (~86.9 MB on first use). The first two run Google's open-source MediaPipe selfie-segmentation and MagicTouch
models; the third runs BiRefNet_lite at 512×512 through onnxruntime-web's WASM CPU provider in
a worker thread. The 512 input is a measured memory constraint, not a stylistic choice, and
the WebGPU provider is deliberately not used because it produced silently wrong output on the
pinned runtime version. Which tier suits which photo, and where each is honestly weaker, is
spelled out on the remover's own page.
There is no upload endpoint on this site. Links you paste are parsed by JavaScript in your tab, and the only network requests the downloader makes are your own browser fetching images from YouTube. Images you load into the tester or the safe-area checker are read with local JavaScript, displayed from in-memory object URLs, and discarded when you close the page. The maker keeps more, deliberately: a photo you import is inlined into the design document so the document is self-contained, and that document autosaves to this browser's localStorage and nowhere else — a corrupted autosave is rejected with a fresh start, and clearing this site's data removes the design. The background remover draws your photo and its cutout on canvases inside the page, and the only thing it remembers between visits is the name of the quality tier you chose. The segmentation models and their WebAssembly runtimes are files this site serves from its own origin — no CDN, no third-party request — with provenance notes (source URLs, versions, checksums, license texts) shipped alongside them. All of this is checkable: open your browser's DevTools network panel, use any tool, and watch what is requested. That level of verifiability is the standard the methodology page holds the whole site to.
The tools answer one question each; the guides explain the mechanism behind the answer, one topic at a time.
If you came with a job rather than a question: recovering your own thumbnail starts at the downloader; seeing how a draft holds up at small sizes starts at the tester; sizing questions go to the size guide and the aspect ratio calculator; building or cutting out an image starts at the maker or the background remover.
Thumbnail sites love to promise "4K thumbnail downloads" for every video. YouTube stores at most 5 sizes per video, the largest is 1280×720, and the 2 biggest sizes exist only for some uploads — for the rest, YouTube answers with a gray 120×90 placeholder. This site detects that case and tells you, rather than letting you download a junk file. The same standard runs through everything here: the tester's mockups are labeled as typical display sizes, the safe-area zones are labeled as conventions, and the size guide cites Google's own documentation. The methodology page spells out every check.
The 5 sizes YouTube stores per video: default (120×90), mqdefault (320×180), hqdefault (480×360), sddefault (640×480) and maxresdefault (1280×720). The first 3 exist for effectively every public video; sddefault and maxresdefault are generated only for some uploads, so the tool probes them before offering a download. Nothing larger than 1280×720 is served.
Because YouTube never generated it. For a missing size, YouTube answers with HTTP 404 whose body is a gray 120×90 placeholder image. The downloader checks both the HTTP status and the decoded pixel width, and only a size that passes both checks gets a download button — the placeholder is never offered as a file.
No. Links are parsed by JavaScript in your tab, and your browser then requests the images directly from YouTube’s image server — this site has no endpoint that sees your input. Images loaded into the tester, the safe-area checker, the maker, or the background remover are read locally, and the segmentation models are files this site hosts and your browser runs. The methodology page shows how to confirm this in your browser’s DevTools network panel.
No. The preview sizes (320×180, 168×94, 246×138, 160×90) are honest current typicals of how video platforms size those surfaces, and the overlay zones model a convention — YouTube publishes no overlay specification. Official figures such as the 16:9 ratio and the 640-pixel minimum width are a different category: the size guide cites them to Google’s help documentation, verified July 25, 2026.
No. There is no registration, no watermark, and nothing to install. The maker autosaves your design to this browser’s localStorage as versioned JSON, and a corrupted autosave is rejected with a fresh start; nothing is stored on a server.
Thumbnails belong to their creators. The downloader links you to images YouTube already serves publicly — for your own videos, backups, or research. Reusing someone else's artwork can require their permission. ThumbnailPro is not affiliated with YouTube or Google.