YouTube Thumbnail Files: Measured Dataset
A machine-readable record of what YouTube's image server actually returns for video thumbnails. Every row comes from a real HTTP request to img.youtube.com or i.ytimg.com: the response status, the byte count, the content type, and the pixel dimensions read out of the returned file's own header. Nothing here is copied from another page and nothing is estimated. Measured between 21 September and 14 October 2026.
The same measurements are re-run per video by the tool on this site — paste a link there and it repeats them live rather than reading a fixed table. These files are the raw runs behind the numbers, published so they can be checked rather than taken on trust.
The files
| File | What it records | Run date |
|---|---|---|
thumbnail-size-ladder.csv | Four videos, every *default.jpg family file: status, bytes, dimensions, content type, cache and CORS headers | 2026-10-01 |
filename-availability.csv | Which of five filenames exist on each of 12 videos, with the measured size of each | 2026-10-05 |
extension-matrix.csv | One slot requested as .jpg, .jpeg, .png, .webp, .JPG, .gif, .bmp and with no extension | 2026-10-14 |
host-equivalence.csv | The same file from five YouTube image hosts, compared by SHA-1 | 2026-10-14 |
url-tail-decoration.csv | One URL with ?sqp=…&rs=…, ?v=1, #t=1, a trailing space, and unchanged | 2026-10-14 |
url-path-shapes.csv | Valid and invalid path shapes: /vi/ present or removed, an extra segment, 0.jpg–3.jpg | 2026-10-14 |
shorts-upright-files.csv | Twelve Shorts × twelve filenames — including the upright oar files | 2026-10-12 |
saved-file-names.csv | What a saving routine receives: suggested filename, Content-Disposition, ETag, Last-Modified | 2026-10-11 |
placeholder-vs-real.csv | The 404 placeholder response measured against a real file response | 2026-10-11 |
What the runs show
- A thumbnail name that does not exist returns HTTP 404 with a 1,097-byte, 120 × 90 JPEG and
Cache-Control: public, max-age=30— a valid image that any viewer will open without complaint. Only the status code separates it from a real file. See how to verify a download. - Requesting that same slot with any extension other than
.jpg—.jpeg,.png,.webp,.JPG,.gif,.bmpor none — returns the 404 placeholder. Only.jpgserves the image. 0.jpgis not the largest file. On the videos tested it was byte-identical tohqdefault.jpg, i.e. 480 × 360.hq720.jpgandmaxresdefault.jpgare not always the same file. They were byte-identical on most videos measured and different on others.- On Shorts, the upright image is not in the
maxresdefaultfamily. Bothmaxresdefault.jpgandhq720.jpgreturned 1280 × 720 landscape on all 12 Shorts measured; the 1080 × 1920 upright file wasoar2.jpg/oar3.jpg. - Five different YouTube image hosts returned the same bytes for the same path.
- A saved file's name comes from the URL, not the server:
Content-Dispositionwas absent on every successful response, and 32 saved files collapsed to five distinct names.
These findings are written up with the surrounding detail on the size, Shorts, verification and saver guides.
Method
Each file is a plain HTTPS GET or HEAD to https://img.youtube.com/vi/<video_id>/<filename>, recording HTTP status, declared and actual body length, Content-Type, Cache-Control, Access-Control-Allow-Origin, Accept-Ranges, ETag, Last-Modified, Content-Disposition, the image's pixel dimensions, and a SHA-1 prefix of the body. Video IDs appear as identifiers only; no thumbnail image is stored or redistributed here, and no titles, channel names or watch links are published.
Reproduce it yourself
The dataset can be rebuilt or extended with one small script. It uses only the Python 3 standard library — no packages to install — and it prints the same fields these files were built from. Download it here: measure_thumbnails.py.
python measure_thumbnails.py dQw4w9WgXcQ— measures the common filename set for one videopython measure_thumbnails.py dQw4w9WgXcQ --names maxresdefault.jpg,hqdefault.jpg— measures exactly the names you ask forpython measure_thumbnails.py dQw4w9WgXcQ --csv > out.csv— writes the same columns these files use
It reports the 404 placeholder as a miss rather than as a picture, which is the one mistake a byte-count check is most likely to make.
Runs, subjects and video IDs
The public video IDs behind each run are listed below, so any figure in the CSVs can be traced back to a specific request. Counts are the number of HTTP requests in the run the published file was drawn from; the larger runs had follow-up passes on top of that.
| Run date | Requests in the published run | What it covered | Public video IDs used |
|---|---|---|---|
| 2026-10-01 | 24 | 4 videos × 6 *default.jpg files | dQw4w9WgXcQ, 9bZkp7q19f0, jNQXAC9IVRw, aqz-KE-bpKQ |
| 2026-10-05 | 60 | 12 videos × 5 filenames | dQw4w9WgXcQ, kJQP7kiw5Fk, fJ9rUzIMcZQ, JGwWNGJdvx8, RgKAFK5djSk, OPf0YbXqDm0, hTWKbfoikeg, 60ItHLz5WEA, CevxZvSJLk8, YQHsXMglC9A, PT2_F-1esPk, lp-EO5I60KA |
| 2026-10-11 | 40 | 8 videos × 5 filenames (the saved-name and placeholder rows come from dQw4w9WgXcQ), plus 11 follow-up requests covering HEAD, repeat download, byte ranges and the two WebP addresses | 8 public videos; dQw4w9WgXcQ for the single-file checks |
| 2026-10-12 | 144 | 12 Shorts × 12 filenames, plus follow-up passes over extra names, link shapes, range checks and page HTML | 12 public Shorts — the IDs are the first column of shorts-upright-files.csv |
| 2026-10-14 | 42 | Extension matrix, five hosts, URL tail variants and path shapes | dQw4w9WgXcQ; one Short, -62C9R_41Sc |
Limitations — read before citing
- Not a census. Samples are 4 to 12 videos per question, chosen to include both recent uploads and old ones. A figure such as "10 of 12" is exactly that, and generalises only as far as the sample.
- Point in time. YouTube can change this behaviour at any moment. A row is true for its run date, which is given for every file and every row.
- Public videos only. No private or unlisted videos were requested.
- Some questions are answered on a narrower sample than others. Where a filename was not requested in a run it is omitted rather than recorded as absent.
These files are published under CC BY 4.0 — you may reuse and redistribute them, including commercially, with attribution to thumbcatcher.com. If you cite a figure, quote the run date with it. Each file below is plain CSV, no sign-up and no licence key.