Skip to content
100% local

VideoObject schema generator

Turn video details into a valid schema.org VideoObject JSON-LD block for rich results.

Output

VideoObject schema generator

Paste in your video's details and this tool builds a valid schema.org VideoObject JSON-LD block you can drop straight into a page's <head> or body. It is built for creators, publishers and developers who want their video to qualify for Google's video rich results — the thumbnail, duration badge and key-moments list that show up in search — without hand-writing structured data.

Fill in the title, description, thumbnail image, upload date and duration in ISO 8601 form (PT1M33S for one minute thirty-three seconds), plus the video file or player URL, author and publisher. The required-fields check counts how many of the four fields Google's documentation calls required — name, description, thumbnail and upload date — are present, and turns green once all four are filled in. Chapters are entered one per line as a timestamp and a title (0:00 Intro, 1:30 Main topic) and rendered as either a hasPart list of Clip entries or a set of SeekToAction jump targets, whichever your page template expects.

The tool validates the duration format as you type and flags it in the tally without blocking the output, since a schema with an unusual duration string is still worth previewing. Turn off "Wrap in <script> tag" to get bare JSON for pasting into a CMS field that adds its own wrapper, and switch off pretty-printing when you want a single compact line.

Everything runs locally in your browser — no video, URL or transcript you paste in is ever uploaded or sent to a server. Copy the result, download it as a .txt file, or send it on to another tool to keep working.

FAQ

Which fields does Google actually require for video rich results?
Per Google's documentation: name, description, thumbnailUrl and uploadDate. The tally under the output tracks how many of those four are filled in.
How do I format the duration?
Use ISO 8601 duration syntax, e.g. PT1M33S for 1 minute 33 seconds or PT1H2M3S for 1 hour 2 minutes 3 seconds. The tool flags a value that doesn't match this format.
What is the difference between the two chapter formats?
Clip entries (hasPart) describe each chapter as a labeled segment with a start and end time, which is what Google uses for the "key moments" carousel. SeekToAction entries instead describe jump-to points for a video player that supports deep linking.
Can I generate the schema without a script tag?
Yes. Turn off "Wrap in <script> tag" to get the raw JSON-LD object, useful when your CMS or template already adds the wrapper.
Is my video data uploaded anywhere?
No. The schema is generated entirely in your browser from the fields you type in — nothing is sent to a server.