How to use this generator
- Enter the video title and description. Describe what the video actually shows.
- Add a thumbnail URL and upload date. A direct image URL and the real publish date are important for video results.
- Add the content URL or embed URL. The content URL points to the raw file; the embed URL is the player page.
- Add the duration in ISO 8601. For example, PT2M30S for two minutes thirty seconds.
- Copy and validate with the Rich Results Test.
What is VideoObject schema?
Video schema is structured data describing a video: its title, description, thumbnail, upload date, duration, and where it can be played. It uses the VideoObject type, which Google supports for video rich results and video search features.
With valid VideoObject markup, a video can become eligible for enhanced video presentations in search, including a thumbnail and key details. Some features, like key moments, need extra fields, but the basics start here.
Thumbnail, upload date, and duration carry it
Google leans on a few fields for video results: a real thumbnailUrl, an accurate uploadDate, and ideally a duration. Provide a direct, publicly reachable thumbnail image and a genuine publish date.
Use either contentUrl (the raw video file) or embedUrl (the player), or both. Duration uses ISO 8601 format, so ten minutes is PT10M and ninety seconds is PT1M30S.
Where to put the code
Paste the generated <script type="application/ld+json"> block into the <head> of the page it describes. On WordPress, a free plugin like WPCode adds header code without editing theme files, and SEO plugins such as Yoast and Rank Math accept custom JSON-LD. On a static site, paste it straight into the HTML.
Frequently asked questions
Is this Video schema generator free?
Yes, free, browser-based, no signup.
What fields does Google need for video results?
At minimum a name, description, thumbnail URL, and upload date; a duration and a content or embed URL help.
What format is the duration?
ISO 8601. Two minutes thirty seconds is PT2M30S; ten minutes is PT10M.
contentUrl or embedUrl?
contentUrl points to the raw file, embedUrl to the player page. You can provide either or both.
Where does it go?
In the head of the page that hosts the video.