Methodology & Accuracy
Every tool on ThumbnailPro is powered by small, tested functions, and every claim in the site's copy should be checkable. This page documents how the tools actually work — including the parts other thumbnail sites gloss over: what happens for sizes YouTube never generated, why the downloads work at all, and where official rules end and conventions begin.
URL parsing
Every YouTube video is identified by an 11-character ID drawn from letters, digits, hyphen, and
underscore. The parser extracts that ID from the link forms people actually paste — standard
watch?v= URLs, youtu.be share links (with their tracking query strings),
Shorts, embed, /live/, and legacy /v/ paths, or a bare ID — and validates
it against the exact character set and length. It rejects, with specific explanations rather than
a generic error: playlist links (no single video), channel links (/channel/, /@handle, /c/, /user/), non-YouTube domains including lookalikes such as youtube.com.evil.example, and non-http schemes like javascript: that can smuggle a fake hostname past naive
checks. All of this is covered by an automated test matrix.
Thumbnail URLs and the placeholder-detection check
From a video ID, the five stored sizes live at predictable addresses under
https://img.youtube.com/vi/{id}/: default (120×90),
mqdefault (320×180), hqdefault (480×360), sddefault
(640×480), and maxresdefault (1280×720). The two largest exist only for some uploads.
When a size is missing, YouTube answers with HTTP 404 — but the response body is a gray 120×90 placeholder
image, which a plain <img> tag happily renders, and which careless tools happily
serve as a "download". ThumbnailPro checks both signals: the HTTP status of the fetch, and the decoded
pixel width of the returned image (asking for a 1280px
maxresdefault and decoding 120px means placeholder). Only sizes that pass both checks
get a download button; the rest are labeled "not available for this video". The classification logic
is a pure function with its own tests.
Why one-click downloads work (the CORS reality)
A web page can only read image bytes from another domain if that domain's server explicitly
allows it (CORS). We verified empirically that YouTube's image server sends
Access-Control-Allow-Origin: * on thumbnail responses, which is why this site can fetch
the image in your browser, verify it is not a placeholder, and hand you a real one-click download.
Your browser talks directly to YouTube's servers — the same requests it makes when you browse YouTube
— and this site's servers never see your link. If something in your environment blocks those fetches
(an aggressive extension, a corporate proxy that strips CORS headers), the tool degrades honestly:
it shows "Open image" links to the original YouTube URLs with a save instruction, rather than pretending
a download happened.
Preview sizes, safe areas: typicals, not specs
The tester renders thumbnails at true display sizes — 320×180 for a desktop home-grid card, 168×94 for a suggested-sidebar row, 246×138 for a search row, 160×90 for a mobile list row. These are honest current typicals of how video platforms size those surfaces; platforms shift them a few pixels with every redesign, so they are labeled as representative, never exact. The same goes for the safe-area checker: YouTube publishes no overlay specification, so its zones (duration badge bottom-right, hover controls top-right, progress bar along the bottom) model the convention at typical proportions and say so on their labels. Official figures — 16:9, 640px minimum width, the upload size limits — are a different category: those are cited to Google's help documentation on the size guide, with the date we last verified them.
The maker: a pure engine driving a canvas
The thumbnail maker is split in two. A pure, heavily tested engine owns every decision: the versioned document model (layers, z-order, immutable updates, JSON serialization with corrupt-data rejection), the transform geometry (rotated-rect hit tests, scale-from-handle math, snap guides), undo/redo history semantics, the deterministic layout templates, and the export planner. The browser layer only draws that document onto a canvas and forwards pointer and keyboard events. Serialization is round-trip tested, and a corrupted autosave is rejected with a fresh start — never rendered.
Background removal: a local model, verifiably local
The maker's subject cutout runs Google's open-source MediaPipe selfie-segmentation model (@mediapipe/tasks-vision 0.10.35, Apache-2.0) entirely in your browser. This site hosts the WASM runtime and the 249 KB
.tflite model itself under
/vendor/mediapipe/ — no CDN, no third-party request, and a provenance note with the source
URLs, version, checksums, and full license text ships alongside the files. To verify the privacy claim
yourself: open your browser's DevTools network panel, import a photo, toggle the cutout, and observe
that the only requests are your own browser fetching the model files from this site — no image bytes
leave the page. Running WebAssembly required exactly one addition to this site's Content-Security-Policy:
'wasm-unsafe-eval' in script-src
(verified empirically against a server sending the production headers). If the model fails to load,
the toggle disables with a message and the rest of the editor keeps working.
Maker templates, fonts, and export honesty
The style templates are deterministic data — generated gradients, outlined text, arrows, badges, and labeled photo slots — pinned by tests that assert each is structurally valid and distinct. They are not AI, and their descriptions state what each layout does rather than promising click-through. The three fonts (Archivo Black, Inter, Baloo 2) are SIL Open Font License releases, self-hosted as pinned-version subsets with license texts committed in the repository. Exports respect a user-chosen size cap (2 MB by default — YouTube's mobile limit, per the size guide): JPG encoding binary-searches quality until the file fits (the same tested planner approach used across the Sumvia network), 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.
Trademark and copyright stance
The preview mockups are deliberately generic — neutral grays, no YouTube logo, no cloned iconography — because YouTube's interface and branding are YouTube's property, and imitating them is neither necessary nor honest. Thumbnails themselves are the creators' artwork: the downloader exists for recovering your own work, backups, and research, and the site says so wherever downloads happen. ThumbnailPro is not affiliated with or endorsed by YouTube or Google.
Privacy: uploads never leave the browser
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. There is no upload endpoint on this site. Links you paste into the downloader are parsed locally; the only network requests are your own browser fetching images from YouTube. You can watch all of this in your browser's network inspector — that is the level of verifiability we aim for.
Worked examples can't drift
The figures quoted in page copy — the derived thumbnail URL on the downloader page, the 1280→720 and 1000→562.5 examples on the aspect calculator — are computed at build time by the same engines that power the interactive tools. If the logic changed, the copy would change with it or the build would fail, so the documentation cannot silently disagree with the tools.
Tested against real behavior
The automated suite pins the URL-parser matrix (every accepted form, every rejection class, hostile inputs), the thumbnail-set derivation, the placeholder classification, the aspect arithmetic against hand-computed values, and the safe-area geometry. If you believe a result is wrong — especially a size labeled available that was not, or the reverse — that is exactly the report we want: see the contact page. Confirmed issues are fixed in the engine and locked in with a new test.