A video schema generator with the conversions built in
This video schema generator writes the VideoObject JSON-LD that lets a search engine list a
video with its thumbnail, its length and, where it has chapters, links straight to each one. Type
the details in the form and the block rebuilds as you go, ready to paste into the page that hosts
the player. The work happens in your browser; nothing you type leaves it.
Video structured data looks simple until you write it by hand. Three fields are not text at all, and they are where most hand-written blocks go wrong.
Duration is ISO 8601, not minutes
duration does not take 4:30 or 270. It takes PT4M30S. Type hours, minutes and seconds as
plain numbers and the string is assembled for you, with seconds over 59 carried up into minutes.
Leave the duration out and the block is still valid, but the result loses its length badge and the
last key moment has nothing to end on.
uploadDate wants a time zone
uploadDate is required, and Google reads a date without an offset in its own time zone. For a
video published late in the evening that can move it to the previous or next day. Write
2026-09-23T08:00:00+01:00, or Z for UTC, and the moment is unambiguous. A bare date is accepted,
with a warning, because sometimes that is all a video host gives you.
Key moments as Clip, done for you
The video key moments schema uses hasPart with one Clip per chapter. Each clip needs a name, a
startOffset in seconds, and a url that opens the video at that second. The tool asks for the
page the video plays on and appends t= for every chapter, which is the pattern Google documents.
Times are typed the way you read them off the player, 1:30 or 1:02:03, and converted to
seconds.
It also fills in endOffset. Each chapter ends where the next one starts, and the last one ends at
the video's duration, so two chapters can never overlap and none can run past the end. Chapters
typed out of order are sorted, two chapters on the same second are flagged, and a chapter that
starts after the video ends is an error rather than a silent mistake.
If your video host already exposes a timestamped URL pattern, Google can also find key moments on
its own through a SeekToAction. The explicit clip list is the version you control, and the one this
tool writes.
Thumbnails and URLs
thumbnailUrl accepts several images, and supplying more than one crop is harmless. Every URL,
thumbnail, file and player, must be absolute; a relative path is resolved by nobody. contentUrl
points at the media file and embedUrl at the player; the videoobject JSON-LD block is valid with
either, and Google recommends at least one.
Conformance here, eligibility at Google
The checks on the right cover syntax, value formats and the fields Google lists as required or recommended. Whether the video earns a rich result, or key moments, is decided against the live page. After publishing, run it through Google's Rich Results Test, or paste the block into the structured data validator first. A video embedded in a post can sit alongside markup from the article schema generator, and the Open Graph generator covers how the page looks when it is shared.