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.