Free tool

VideoObject JSON-LD generator

Build a fully-formed VideoObject schema block with chapters, transcript, and the right ISO-8601 duration. Updates live as you fill in fields.

Direct answer

Q: How do I generate VideoObject JSON-LD with chapters?

A: Fill in title, description, thumbnail, duration, content URL, and any chapters with their start timestamps. The generator emits a complete VideoObject schema with a hasPart Clip[] array — exactly what Google reads to surface Key Moments under your video result. Paste the resulting <script type="application/ld+json"> tag into your page <head> and you're done.

Video metadata

Chapters (hasPart Clip[])

Generated JSON-LD

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "uploadDate": "2026-05-07T00:00:00.000Z"
}
</script>

Field reference

  • name — page-visible title. Keep under ~70 chars to match SERP truncation.
  • description — short pitch. Required for rich result eligibility.
  • thumbnailUrl — at least 1280×720, JPEG or PNG. Required by Google.
  • duration — ISO-8601, generated for you from mm:ss input.
  • contentUrl — directly playable file. Critical: Google can't verify HLS-only videos.
  • transcript — boosts AI Overview citations and long-tail SEO. Use the transcript extractor tool to produce one.
  • hasPart Clip[] — chapter markers. Powers Google's "Key Moments" carousel.
  • schema.org/VideoObject docs →

Don't want to copy-paste? HostMyVideo emits this exact schema (with chapters, transcript and everything) on every video automatically.

Try free
Why this matters for SEO
  • Rich result eligibility. Without VideoObject, you're competing as plain text. With it, you're in the running for video carousels, AI Overviews, and Discover.
  • Key Moments via hasPart. The clip array is the single most under-used schema feature on the web — it adds a chapter carousel right in the SERP and dramatically improves CTR.
  • AI agent comprehension. Embedded transcripts and structured timestamps give AI crawlers the grounding they need to cite your video accurately.
Frequently asked

JSON-LD questions

Do I need to add this on every video page?

Yes — schema is per page. Most CMSes let you template the head injection so you fill in the fields once and every video page emits the right JSON-LD automatically. If hand-coding it sounds painful, that's exactly why we built the hosted version.

Can I validate the output?

Yes. Paste the URL into Google's Rich Results Test (search.google.com/test/rich-results) once it's live. The test will confirm Google sees a valid VideoObject and call out any field-level issues.

Why are some fields optional?

Google requires name, description, thumbnailUrl, uploadDate, and contentUrl/embedUrl for rich result eligibility. The rest (duration, transcript, hasPart) are recommended boosts — you'll get richer SERP treatment with them but you won't be penalized without them.

How precise do chapter timestamps need to be?

Round to the nearest second. Google uses these to mark chapter boundaries in the SERP carousel; sub-second precision isn't useful and just clutters the schema. Make sure each chapter starts at a clear visual cut in your actual video.

What's the difference between contentUrl and embedUrl?

contentUrl points to the raw playable file (e.g. .mp4 over HTTPS). embedUrl points to the iframe-able player page. Google strongly prefers contentUrl because it can verify the media exists. Provide both when you can.

Schema, transcripts, chapters — automatic.

HostMyVideo emits VideoObject + Clip + transcript on every upload. No CMS templating, no copy-paste. 14-day free trial of Pro.

HostMyVideoA QueryWing productPremium video hostingFounded 2026Worldwide
Free VideoObject JSON-LD generator | HostMyVideo | HostMyVideo