YouTube Link Preview Checker
A YouTube watch page already has a title, a description, and a thumbnail in Open Graph. Paste the video URL to read them. The cards below are the other platforms that read the same tags — Peekly does not draw a YouTube player.
How a YouTube share card is built
- Tags on the watch page. YouTube does not publish a webmaster guide for these tags. A public watch page does include them in the HTML, for an ordinary browser and for a crawler. On https://www.youtube.com/watch?v=dQw4w9WgXcQ they were og:site_name YouTube, og:url set to that watch URL, og:title set to the video title, and og:description set to a shortened description. og:image was https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg with og:image:width 1280 and og:image:height 720, a 16:9 frame. og:type was video.other. twitter:card was summary_large_image, twitter:site was @youtube, and twitter:image repeated the same file. twitter:player pointed at the embed URL, and so did og:video:url and og:video:secure_url, with og:video:type text/html and a declared size of 1280×720. The card type YouTube chose is the large image, so a consumer that honors twitter:card shows the thumbnail rather than a player. The thumbnail itself is chosen in YouTube Studio. There is no meta tag on youtube.com for you to edit.
<meta property="og:title" content="Video title"> <meta property="og:description" content="The first lines of the description."> <meta property="og:image" content="https://i.ytimg.com/vi/VIDEO_ID/maxresdefault.jpg"> <meta property="og:image:width" content="1280"> <meta property="og:image:height" content="720"> <meta property="og:type" content="video.other"> <meta property="og:video:type" content="text/html"> <meta name="twitter:card" content="summary_large_image"> - oEmbed uses a smaller thumbnail. YouTube's oEmbed endpoint answers any client: GET https://www.youtube.com/oembed?url= plus the watch URL, and format=json. For the same video the JSON type was video, with title, author_name, author_url, and provider_name YouTube. thumbnail_url was https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg at 480×360. The html field is an iframe aimed at youtube.com/embed/. There is no description field. A preview built from oEmbed and a preview built from og:image are different pictures: 480×360 against 1280×720. YouTube does not publish a promise that maxresdefault.jpg exists for every video. When that file is missing, a client that guessed the filename has a broken image, and the oEmbed thumbnail is the file the oEmbed response actually named. Paste the watch URL here. This checker reads og:image from the page and downloads it, which is the larger file when YouTube emitted one.
- The video tag is an embed page. og:video on that watch page is the embed document, and og:video:type is text/html. It is not a video file. Discord's link-preview docs play a video only for video/mp4, video/webm, and video/quicktime, and they require og:image as the preview frame. A YouTube link in Discord keeps the image card. The same is true anywhere else that will only attach a file it can play. oEmbed's html iframe is how a site embeds the player on purpose. A share card does not run that iframe. If the card you want is a custom title and a custom image, publish those on a page you control and link the watch URL from the page. The Open Graph tags on youtube.com stay YouTube's.
- Short URLs, and a stale card. youtu.be/VIDEO_ID responds with a redirect to youtube.com/watch?v=VIDEO_ID&feature=youtu.be. A crawler that follows the redirect reads the watch page, and the og:url on that page is the watch URL without the short host. This checker follows up to five redirects, then grades the page it lands on. YouTube does not publish a scrape-again tool. Editing the title or the thumbnail updates the next fetch of the watch page. A post that already stored the card keeps it. The Refresh a Link Preview Cache page lists the debugger each other platform documents. Facebook's is the Sharing Debugger, and it is the one that refetches a YouTube URL for Facebook. A query string on the watch URL is a different URL.
Tags covered: og:title · og:description · og:image · og:type · og:video · og:video:type · twitter:card · twitter:image · twitter:player
More checkers
Twitter Card ValidatorOpen Graph CheckerLinkedIn Link Preview CheckerDiscord Embed PreviewWhatsApp Link Preview CheckerSlack Link Preview CheckeriMessage Link Preview CheckerFacebook Link Preview CheckerOpen Graph Image SizeTelegram Link Preview CheckerReddit Link Preview CheckerNext.js Open GraphRefresh a Link Preview CacheBluesky Link Preview CheckerMastodon Link Preview CheckerMicrosoft Teams Link Preview CheckerFix a Broken Open Graph PreviewInstagram Link Preview CheckerPinterest Link Preview CheckerTikTok Link Preview CheckerAll platforms
What each platform reads
- X / Twittertwitter:card, twitter:* → og:* fallback1200×630 (min 300×157), < 5 MB
- Facebookog:title, og:description, og:image1200×630, 1.91:1
- LinkedInog:title, og:image (og: only)1200×627, 1.91:1
- Discordog:site_name, og:*, theme-color, twitter:cardLarge image needs summary_large_image
- Slackog:site_name, og:title, og:description, og:image1200×630
- WhatsAppog:title, og:description, og:imageKeep < 300 KB
Guidance based on each platform's public documentation and observed behavior. Platforms change their rules without notice.
FAQ
+Is Peekly free?
Yes. Checking a single URL is free forever — no signup and no limit on one-off checks. Batch watching and monitoring may arrive later as a paid Pro plan; the free single-URL tool stays.
+Why does my link show no image when I share it?
Usually one of four things: there's no og:image tag, the image URL is relative instead of absolute, the image is behind a login, firewall or bot block, or the file is too big or in an unsupported format like SVG. Peekly checks all four and tells you which one it is.
+What size should my og:image be?
1200×630 pixels (a 1.91:1 ratio) as a PNG or JPG under about 300 KB. That size works for large cards on X, Facebook, LinkedIn, Discord, Slack and WhatsApp.
+Do I need twitter: tags if I already have Open Graph tags?
X reads og:title, og:description and og:image as fallbacks, but you still need twitter:card set to summary_large_image if you want the big image card. Without it, X shows a small thumbnail.
+I fixed my tags but the old preview still shows. Why?
Platforms cache link previews, sometimes for days. Facebook and LinkedIn let you force a refresh with their own debugging tools. On X, Slack and Discord the cache usually expires on its own, or you can add a query string such as ?v=2 to the URL.
+Do you store the pages I check?
No. We fetch the page once to read its <head>, show you the result, and don't save the page or the result. We only fetch public http(s) URLs, and private or internal addresses are blocked.
+Are the previews pixel-perfect?
They're close approximations of each platform's current card layout, built from the same tags the platforms read. Platforms change their designs from time to time, so treat them as a very good guide rather than a screenshot.
$9
One time
A written fix for the batch.
Up to 25 URLs. We check og:image, Twitter cards, size, redirects, and cache, then send copy-paste meta tags within 48 hours. The free single-URL check stays free.