Generating Schema

Generating VideoObject schema

SuperSchema detects embedded videos and builds VideoObject schema, filling in the embed link and, where it can, a thumbnail. It recognizes YouTube, Vimeo, Wistia, HubSpot, Vidyard, Brightcove, Loom, and native HTML5 video. Here is what is supported and what to do when a video is not found.

View as plain text Updated 2026-07-07

When your page has an embedded video, SuperSchema can generate VideoObject schema: the markup that makes a page eligible for video rich results and helps AI understand what the video is about. It recognizes the major players by how they embed, pulls out the video ID, and fills in a canonical URL, the embed link, and a thumbnail where the platform provides a predictable one.

Supported players #

ProviderHow it is detectedThumbnail filled automatically
YouTubeiframe embeds, youtu.be links, and web components like lite-youtube and youtube-player.Yes
Vimeoiframe embeds and vimeo-player web components, or a data-vimeo-id.Yes
Wistiaiframe, wistia-player web component, wistia_embed and wistia_async classes, media-id, and data attributes.Yes
HubSpotHubSpot video embeds (excluding meeting schedulers, forms, and other non-video embeds).No
Vidyardiframe embeds, vidyard classes, or a data-vidyard-id.No
BrightcoveBrightcove iframe embeds and video-js players with a data-video-id.No
LoomLoom share and embed iframes.From the embed where available
Native HTML5A <video> element with a src or a <source>, using the poster attribute as the thumbnail.When a poster is set
Note For YouTube, Vimeo, and Wistia, SuperSchema can build a thumbnail URL from the video ID, so those usually come through with a poster image. For HubSpot, Vidyard, and Brightcove there is no reliable public thumbnail pattern, so the thumbnail may be blank until you add one in the editor.

How detection works #

When you generate with the VideoObject type selected, SuperSchema waits specifically for video elements to appear before it reads the page. Many players (Wistia, YouTube, Vimeo, and others) load their embed through JavaScript after the initial page load, so this extra wait gives them time to render.

  • It scans for known embed patterns: player iframes, web components, and provider-specific classes and data attributes.
  • It extracts the video ID and builds a canonical video URL and an embed URL for each match.
  • It de-duplicates, so the same video embedded twice does not appear twice.
  • It carries through provider, title, thumbnail, and dimensions when the page exposes them.

If a video is not detected #

  1. Confirm the video is from a supported provider and is embedded in the page, not linked as a plain URL.
  2. Make sure the video is present in the page content, not loaded only after a click, a tab switch, or a login.
  3. Generate again with the VideoObject type selected so SuperSchema waits specifically for the video to load.
  4. If it still is not found, add the video details by hand in the Schema Editor.
Warning A video that only appears after a user interaction (clicking a play overlay, opening a modal, or signing in) may not be visible to the page reader, so it can be missed. Videos embedded directly in the page content are the most reliable.

Editing video details #

You can always add or correct video details in the Schema Editor. This is where you set a thumbnailUrl for providers that do not supply one automatically, and where you can fill in a clear name, description, uploadDate, or duration to make the schema more complete.

Tip Google looks for a thumbnail on VideoObject markup for video rich results. If the thumbnail came through blank (common with HubSpot, Vidyard, and Brightcove), paste a direct image URL into thumbnailUrl in the editor before you publish.

Still have questions?

Can't find what you're looking for? Our support team is here to help.

Contact Support