My Tool Studio
Schema

VideoObject Schema Generator

Google treats an unmarked video as a mystery box, so pages with embedded players often miss video rich results entirely. This video schema generator writes VideoObject JSON-LD the way Google's documentation asks for it: name, description, thumbnailUrl, and an uploadDate assembled into strict ISO 8601 from separate date, time, and timezone inputs. There's a duration builder too: three number fields for hours, minutes, and seconds that turn into a PT format string while you watch. Content teams use it after publishing a tutorial or product demo that deserves a thumbnail in search results. Add an optional publisher block or an expiration window if the video is time-limited, then copy the finished script tag straight into the page.

Always freeNo sign upRuns in your browser

Video details

Upload date & time *

ISO 8601:select date / time / timezone above

Video duration

ISO 8601 duration:PT0S

Publisher

Expiration (optional)

Required: Title is required · Description is required · Video URL is required · Thumbnail URL is required · Upload date is required
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "VideoObject"
}
</script>

How to use

01

Enter the video basics

Add the video title, description, video URL, and thumbnail URL. If you have them, include the embed URL for the player and the content URL pointing at the direct video file.

02

Set date and duration

Pick the upload date, time, and timezone; the ISO 8601 preview updates underneath as you choose. Enter hours, minutes, and seconds and check the generated PT duration string.

03

Copy the finished markup

Add a publisher name and logo if you want the publisher block, set an optional expiration date, then hit Copy script once the required-field warnings disappear.

Why VideoObject Schema Generator

Common questions

Which VideoObject fields are required by Google?
Four properties: name, description, thumbnailUrl, and uploadDate. The tool treats all four plus the video URL as required and lists anything missing in the warning banner above the output, so the block you copy is always eligible on the field level.
How does the video schema generator format the upload date?
You pick a date, a time, and a UTC offset from the timezone dropdown, and the tool concatenates them into a full ISO 8601 datetime like 2026-05-14T09:30:00+05:00. The live preview under the card shows exactly what will be emitted, which kills the most common formatting mistake in video markup.
What's the difference between contentUrl and embedUrl in VideoObject schema?
contentUrl points at the actual media file, such as an .mp4 you host. embedUrl points at the player page, like a YouTube embed link. Google wants at least one of the two so it can fetch and understand the video; provide both when you can.
Does VideoObject schema work for YouTube videos embedded on my page?
Yes. Put the YouTube embed link in the Embed URL field and your own page address in Video URL. The markup then describes the video in the context of your page, which is what lets your URL, not just youtube.com, compete for video results.
Why does video schema need a thumbnailUrl?
The thumbnail is the rich result. Google renders it next to your listing, and without a reachable thumbnailUrl the video is ineligible. Use a stable, crawlable image URL of at least 60x30 pixels, though larger images in standard formats perform far better.
When should I set an expiration date in VideoObject markup?
Only when the video genuinely stops being available, like a limited-time webinar replay. The tool emits it as an expires property, and Google stops showing the video after that datetime. Leave the Expiration card empty for evergreen content.
Can the duration in video schema be longer than an hour?
Yes. The hours field accepts up to 23, and a two and a half hour recording comes out as PT2H30M. Duration is optional but recommended, since it shows on the thumbnail badge and helps Google index key moments.

More Schema tools

View all