Video Schema Markup Generator (JSON-LD)
Create VideoObject JSON-LD with thumbnail, upload date, duration, embed URL and key moments, checked against Google's required fields.
Video
Key moments (optional)
JSON-LD
Checklist
What video schema does
VideoObject markup tells search engines that a page contains a video and describes it: the title, a thumbnail, when it was published, how long it runs and where the file or player lives. That makes it easier for Google to find the video, show it with a thumbnail and duration, and include it in video results. Key moments let you label chapters so people can jump straight to the part they need.
Google requires three fields: name, thumbnailUrl and uploadDate. It recommends description, duration, and a contentUrl or embedUrl so it can fetch the video itself.
How to use the generator
- Enter the title and description exactly as they appear on the page.
- Add the thumbnail image URL and the date the video was published.
- Type the length in hours, minutes and seconds. The tool converts it to ISO 8601, so 5 minutes 30 seconds becomes PT5M30S.
- Add the video file URL, the player embed URL, or both.
- For key moments, paste your chapter list with a time at the start of each line, and the watch page URL. The tool works out each start and end time and the link to it.
Paste the code on the page where the video is embedded. Use one block per video.
Frequently asked questions
Do I need video schema for YouTube embeds?
It helps when the video is embedded on your own page and you want that page to be the result. Google can often detect YouTube embeds on its own, but markup makes the details explicit.
What is the difference between contentUrl and embedUrl?
contentUrl points to the actual video file, such as an MP4. embedUrl points to the player, such as a YouTube embed address. Providing either one helps Google fetch the video.
How do key moments work?
Each chapter becomes a Clip with a start time, an end time and a link that opens the video at that time. Google may then show those chapters in search results, though it decides when to display them.
How do I test the markup?
Publish the page and run its URL through Google's Rich Results Test. It flags missing required fields and shows whether the video is eligible.

