UtilityToolsLab

© 2026 UtilityToolsLab. Built and maintained by the UtilityToolsLab Team.

About·Changelog·Privacy Policy·Terms of Service·Contact
HomeSchema & Structured DataVideo Schema

Related Tools

LocalBusiness JSON-LDArticle SchemaFAQ SchemaBreadcrumb SchemaProduct SchemaEvent SchemaRecipe Schema

VideoObject Schema Generator — JSON-LD

Build VideoObject JSON-LD for Google video results: thumbnail, upload date, duration, view count and key moments from your timestamps. Validated as you type.

You Might Also Like

All Schema & Structured Data

LocalBusiness JSON-LD

Build LocalBusiness JSON-LD with opening hours modelled properly: split shifts, merged day ranges and round-the-clock trading all come out correct.

Article Schema

Build Article, BlogPosting or NewsArticle JSON-LD with author, publisher and date properties. Flags a headline over Google's 110-character limit.

FAQ Schema

Build a schema.org FAQPage JSON-LD block from your own questions and answers, ready to paste into your page. 100% client-side, no uploads.

Breadcrumb Schema

Build a schema.org BreadcrumbList JSON-LD block from an ordered page trail, ready to paste into your page. 100% client-side, no uploads.

When a page has a video on it, Google can show that video in search with a thumbnail, its length and even chapter links that jump straight to a moment. It does that reliably only when the page describes the video in structured data. VideoObject Schema Generator writes that description for you as JSON-LD, ready to paste into the page.

Fill in the three fields Google requires, the title, a thumbnail URL and the upload date, then as many recommended ones as you have: description, duration, the video file or player URL, view count, an expiry date and allowed regions. Paste your chapter timestamps and the tool turns them into key moments. Problems are listed in plain words as you type, and nothing is sent anywhere.

Worked Example: A 12-Minute Baking Video

The page opens with How to Shape a Sourdough Loaf: two thumbnails, an upload at 09:30 on 14 October 2026 in UTC+6, a duration of 12:34 and five timestamps starting 0:00 Intro and 1:45 Pre-shape. The output has an uploadDate of 2026-10-14T09:30:00+06:00, a duration of PT12M34S, a view count of 12,850 as an InteractionCounter, and five Clip items. “Pre-shape” runs from second 105 to 270 and links to ?t=105; the last clip ends at 754, the full length. Press Load Sample for a product test that has only an embed URL, then a lecture with no upload time, which shows the time-zone warning.

Let Google pick (SeekToAction) is the other way to get key moments: instead of listing chapters, it tells Google how to link to any second of your video, here ?t={seek_to_second_number}, and Google chooses the moments itself. Tick This is a live stream to add a BroadcastEvent with start and end times.

Edge Cases in Key Moments

  • Each timestamp line needs a time first. A line like Intro returns “Key moment line 1 ("Intro") needs a time first, like 2:15 Shaping the loaf.”
  • Times must go up line by line, and a moment that starts at or after the video's end is refused, so check the duration matches.
  • Without a duration the last moment has no end time, and the tool says so; every other moment ends where the next begins.
  • The time parameter defaults to t, which YouTube uses. A self-hosted player may read something else, and Google will only follow the links if the parameter really starts playback at that second.
  • Durations accept 12:34, 1:02:03 or plain seconds, so 95 becomes PT1M35S; minutes or seconds of 60 or more are refused.

When Not to Use Video Markup

  • On a page where the video is not the point. Google may ignore markup for a video that is decoration in a sidebar; put it on the page built around the video.
  • As a guarantee. Valid markup makes a page eligible for video results; it does not promise them. Check the result in Google's Rich Results Test after publishing.
  • With details that differ from the page. The title, thumbnail and duration should match what a visitor sees, or Google may treat the markup as misleading.

Every property the tool writes was checked against the official schema.org vocabulary while it was built: 141 properties across the samples, the SeekToAction form and a live stream, all valid for their types.

Required by Google

Several sizes or ratios (1:1, 4:3, 16:9) can be listed; each must be a full https:// URL Google can crawl.

Recommended

Key moments (chapters in search)

The query parameter your player reads to start at a second, so a moment at 1:45 links to ?t=105. YouTube uses t.

Paste the chapter list from your video description. Each moment ends where the next begins; the last ends at the duration.

VideoObject JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "How to Shape a Sourdough Loaf",
  "description": "Pre-shape, bench rest and final shape for an open crumb, shown step by step at a home bench.",
  "thumbnailUrl": [
    "https://www.northwind-bakery.example/video/shaping-1x1.jpg",
    "https://www.northwind-bakery.example/video/shaping-16x9.jpg"
  ],
  "uploadDate": "2026-10-14T09:30:00+06:00",
  "duration": "PT12M34S",
  "contentUrl": "https://www.northwind-bakery.example/video/shaping.mp4",
  "interactionStatistic": {
    "@type": "InteractionCounter",
    "interactionType": {
      "@type": "WatchAction"
    },
    "userInteractionCount": 12850
  },
  "hasPart": [
    {
      "@type": "Clip",
      "name": "Intro",
      "startOffset": 0,
      "endOffset": 105,
      "url": "https://www.northwind-bakery.example/videos/shaping?t=0"
    },
    {
      "@type": "Clip",
      "name": "Pre-shape",
      "startOffset": 105,
      "endOffset": 270,
      "url": "https://www.northwind-bakery.example/videos/shaping?t=105"
    },
    {
      "@type": "Clip",
      "name": "Bench rest",
      "startOffset": 270,
      "endOffset": 370,
      "url": "https://www.northwind-bakery.example/videos/shaping?t=270"
    },
    {
      "@type": "Clip",
      "name": "Final shape",
      "startOffset": 370,
      "endOffset": 605,
      "url": "https://www.northwind-bakery.example/videos/shaping?t=370"
    },
    {
      "@type": "Clip",
      "name": "Into the banneton",
      "startOffset": 605,
      "endOffset": 754,
      "url": "https://www.northwind-bakery.example/videos/shaping?t=605"
    }
  ]
}
</script>

Paste it into the page that shows the video, then check it with Google’s Rich Results Test . Markup makes a page eligible for video results; it does not guarantee them.