Free Video Schema Generator — VideoObject JSON-LD
Video Schema Generator
A video schema generator produces VideoObject JSON-LD describing a video's name, description, thumbnailUrl, uploadDate and either contentUrl or embedUrl. Google requires all five of these to consider a page for video rich results and video carousels, and duration must be formatted as ISO 8601 (for example PT4M13S), not plain minutes. Enter your video's details below to get a validated JSON-LD block ready to paste into the page's head.
Generate valid VideoObject JSON-LD from a video's title, thumbnail, duration and upload date. Free video schema generator for rich video results, no signup.
Enter the video's core details
Provide the video's title, a short description, the thumbnail image URL, and the date it was uploaded. These four fields are the minimum Google needs to consider the video for a rich result.
Add duration and hosting URL
Type the running time as minutes and seconds — the tool converts it to ISO 8601 automatically. Choose contentUrl for a direct video file or embedUrl for a hosted player like YouTube or Vimeo.
Copy the generated JSON-LD
The tool outputs a complete script tag with the VideoObject type and all required properties, which you paste into the page's head or body exactly as shown.
Frequently asked questions
Does VideoObject schema guarantee a rich result in Google?
No. Valid markup is necessary but not sufficient — Google decides whether to show a video thumbnail, key moments, or carousel placement based on the page's overall relevance and quality. Markup only makes the video eligible; it does not force the rich result to appear.
Can I add VideoObject schema to a page that embeds a YouTube video?
Yes, use embedUrl pointing at the YouTube embed link rather than contentUrl, since you don't host the file directly. You still need thumbnailUrl, uploadDate and duration filled in manually, as YouTube's own schema on its own domain doesn't transfer to your page.
Where does VideoObject JSON-LD need to be placed?
Inside a single <script type="application/ld+json"> tag anywhere in the page's <head> or <body>. It must describe a video that is actually visible on that page — marking up a video that isn't embedded or linked on the page violates Google's structured data guidelines.
What's the most common reason video schema fails validation?
Duration written as plain text like '4:13' instead of the required ISO 8601 format 'PT4M13S'. Google's parser rejects non-conforming duration strings outright, which silently disqualifies the page from duration-related rich result features like key moments.