Paste a URL and find out whether its og:video actually plays when the link is shared. We fetch the video itself, not just the tag.
Free, no login, no email. Nothing stored beyond a 24 hour cache. Markdown copy · API and MCP
Paste a page URL
The page that carries the og:video tags, not the video file. No login and no email.
We read the tags, then fetch the video
Every og:video and its type, size, and secure_url, read the way ogp.me defines them. Then we fetch the first part of the video and the share image and read what they really are from their own bytes.
See it play, and see what to fix
The video loads in a player sized the way a platform sizes it, beside a check list that says what each reader will do and the one line that fixes each problem.
og:video is one line of markup, and every CMS and framework will write it for you. That is why checking for the tag tells you so little. The tag keeps saying the same thing after the file it points at has moved, after a redesign routes every unknown path to the app shell, and after somebody moves the videos behind a server that sends the whole file when asked for a piece. In each case the markup is perfect and the shared link is a still image.
So this tool fetches the video. Not all of it: the first 512 KB, which is where a file says what it is. An MP4 starts with an ftyp box, a WebM with an EBML header, an HLS playlist with #EXTM3U, and an HTML page in a video costume with a doctype. We read that, rather than the file name or the Content-Type, and every check on the result is about a file we looked at.
The part people miss is that og:video is only read by some of the places a link gets shared. Facebook, LinkedIn, Discord, Slack and most chat apps read Open Graph. X does not read og:video at all: it plays video in a card only from twitter:card set to player and a twitter:player page. Google reads neither, and finds video from a VideoObject in the page's structured data. A page can do one of these perfectly and be a still image on the other two.
Two problems make up most of "it works on my machine" with video previews. The first is byte ranges. Safari asks for a video in pieces and will not play an MP4 from a server that answers with the whole thing, so a video that plays in Chrome on your laptop is a black box on every iPhone. We send the same kind of request and tell you what came back.
The second is where the MP4 keeps its index. Exported the default way, many tools write it at the end, which means a player has to download the whole file before it can show a frame. On a fast office connection nobody notices. On a phone, the preview spins until the viewer scrolls past. The fix is one ffmpeg flag and no re-encode, and the check tells you whether you need it.
The og:video spec on ogp.me has not had a new release. Its example still declares application/x-shockwave-flash, a format that stopped running at the end of 2020, and that line still turns up in production head tags because it was copied from there. The spec did not need to change for the platforms around it to stop forgiving it.
It is the Open Graph tag that tells a platform a page has a video, and where the file is. It is defined on ogp.me alongside og:title and og:image, with structured properties for the details: og:video:secure_url for an https address, og:video:type for the format, and og:video:width and og:video:height for the size. The spec has not changed since it was published, so there is no new version to migrate to. What has changed is which platforms read it, and how strictly.
The same run this page does, as an HTTP endpoint and as the MCP tool check_og_video. No account, no API key. Full reference.
curl -sS https://usesuperflow.ai/api/tools/og-video-checker \
-H 'Content-Type: application/json' \
-d '{"url":"vimeo.com/76979871"}'Returns { hasPlayableVideo, primary, videos[] with declared tags and probe (format, kind, dimensions, durationSeconds, rangeSupported, fastStart, problem), image, ogType, videoMeta, twitter, videoObject, checks[] with id, status and fix, counts }. 60 runs per hour per IP. Allow up to 30 seconds.
claude mcp add --transport http superflow https://usesuperflow.ai/api/mcpThen ask your agent for check_og_video. Setup for Claude Desktop, Cursor and VS Code is on the reference page.
No login, no email, no ads. Same as this one.
Superflow agents watch your live pages and tell you when a tag changes, a file stops loading, or a CDN rule quietly stops answering range requests.