YouTube oEmbed Metadata Viewer – What a Link Actually Carries
A YouTube link is more informative than it looks. Almost everything a YouTube oEmbed metadata viewer shows you is derived from one small piece of it: the eleven-character video ID. Paste a watch page, a youtu.be short link, a /shorts/ address, an /embed/ URL, a /live/ link, or a bare ID, and this tool pulls the ID out, rebuilds the canonical addresses, lists the tracking parameters it discarded, and assembles the five thumbnail URLs YouTube derives from that ID by pattern. None of that requires a network request, which is why the breakdown works with the connection switched off.
What oEmbed is
oEmbed is a small, open format for asking a site “if I paste this URL, what should I show?” A provider exposes one endpoint, you hand it a page URL, and it answers with a compact JSON object. YouTube implements it at https://www.youtube.com/oembed, and the answer for a video carries a fixed, short list of fields: title, author_name, author_url, provider_name, provider_url, thumbnail_url with its width and height, the width and height of the embed player, and an html field containing a ready-made iframe.
What it does not return
This is the part that surprises people. oEmbed is a presentation format, not an analytics one, so the response contains no view count, no like or comment count, no subscriber count, no upload date, no duration, no description and no tags. Those fields are simply not part of the document, so no amount of parsing will surface them. If you came looking for view counts, an oEmbed response is the wrong place to look — for any video, on any tool.
How the thumbnail renditions are derived
YouTube serves stills from i.ytimg.com at a predictable path: /vi/<video-id>/<rendition>.jpg. That means all five addresses can be constructed from the ID alone, with no lookup at all.
| Rendition | Nominal size | Generated |
|---|---|---|
default | 120×90 | For every video |
mqdefault | 320×180 | For every video |
hqdefault | 480×360 | For every video |
sddefault | 640×480 | Only when the upload was large enough |
maxresdefault | 1280×720 | Only when the upload was large enough |
The sizes above are the dimensions each rendition is normally served at, recorded as observed behaviour rather than as a published guarantee. Because the two largest renditions are not created for every video, a well-formed maxresdefault.jpg address can still return a 404 on an older or low-resolution upload. The tool marks such a tile as unavailable and prints the measured pixel dimensions of the images that do load, so you can see what you actually have rather than what the pattern suggests.
Canonical addresses and discarded parameters
A shared YouTube link usually arrives carrying more than the video: a si share identifier, a pp value, a feature tag, UTM parameters from a campaign, often a list playlist and an index position. The tool separates the parameters that change what the link opens from the ones that only record where the share came from, and shows you exactly which ones were dropped when rebuilding the canonical watch?v=, youtu.be and /embed/ forms. A start time found in t, start or a legacy #t= fragment is parsed and offered both with and without the timestamp attached.
Reading a response safely
An oEmbed document is remote data, so this tool treats every field as optional and untrusted. A field that is absent is labelled as not returned instead of rendering as undefined. The thumbnail_url and author_url values are validated before either becomes an image source or a clickable link, and one that fails validation is displayed as plain text with the reason. The html field — a remote-controlled string containing an iframe — is never injected into the page; its width and height are read on a detached document, and the markup itself is only ever shown escaped, inside a read-only block you can copy.