Paste a YouTube URL. We call YouTube oEmbed (with a noembed.com fallback) to fill title, description stub, thumbnail, embed URL, and watch URL. uploadDate is not provided by oEmbed—set it below from Studio or your CMS. Duration is filled only when it appears in the title, e.g. (3:45).
Required
For precise publishing time, switch to datetime in the exported JSON if your CMS needs it (e.g. append T12:00:00Z).
Recommended
Duration (ISO 8601)
ISO 8601: —
Optional
Clips (key moments)
Each clip becomes a Clip in hasPart with ISO 8601 startOffset / endOffset.
No clips yet.
Live broadcast (BroadcastEvent)
Emits publication as BroadcastEvent with isLiveBroadcast: true.
SeekToAction (key moments URL template)
Optional potentialAction for SeekToAction. Include the literal token {seek_to_second_number} where the second offset belongs.
Video schema is structured data that describes a video asset using Schema.org type VideoObject, almost always published as JSON-LD in your HTML. It tells search systems the canonical title, a human-readable description, when the video was published, how long it runs, where the poster image lives, and—critically—where users can watch the file or embedded player. That machine-readable layer complements the visible player, transcript, and surrounding article copy; it does not replace honest editorial context, but it helps Google and other engines interpret your video page as a first-class video experience rather than a mystery iframe.
When implemented accurately, VideoObject markup supports video rich results: enhanced listings that can surface thumbnails, duration, upload metadata, and in some contexts key moments derived from clip markup. YouTubers, video marketers, media publishers, and course creators all benefit when their landing pages clearly declare what a video is, who published it, and how long it lasts. Google may show video previews in standard search, in video mode, and in surfaces such as Discover when videos are eligible and the page meets quality expectations. Structured data is not a ranking guarantee, and rich results depend on policies, site quality, and query intent—but omitting Video JSON-LD on pages that prominently feature unique video is a missed opportunity for clarity.
This SynthQuery Video Schema Generator runs entirely in your browser. You fill required fields (name, description, thumbnailUrl, uploadDate), recommended fields (duration via an ISO 8601 duration picker, contentUrl, embedUrl, view counts, expiry), and optional publisher, author, language, family-friendly flag, keywords, and transcript text. Add Clip rows for key moments, toggle live BroadcastEvent publication metadata, and optionally emit SeekToAction for deep links. Paste a YouTube URL to auto-fill from YouTube oEmbed (with a noembed.com fallback): title, a starter description, max-resolution thumbnail URL pattern, embed URL, and watch URL—then complete uploadDate and duration from YouTube Studio or your CMS because public oEmbed does not expose them. Validate against Google-oriented checks, copy or download JSON-LD, and test in Rich Results. Explore more utilities on the /free-tools hub or the full catalog at https://synthquery.com/tools.
What this tool does
The form maps directly to VideoObject and closely related patterns Google documents for video search features. The emitted graph always includes @context https://schema.org and @type VideoObject. Required properties for typical video rich result eligibility—name, description, thumbnailUrl, and uploadDate—have dedicated inputs with validation that flags empty values and malformed URLs. thumbnailUrl must be absolute http(s); prefer stable CDN URLs that match the poster users actually see beside your player.
The duration picker converts hours, minutes, and seconds into ISO 8601 duration strings such as PT1H2M30S, which is the shape Google expects rather than a raw second count. contentUrl is appropriate when you host a direct media file users or crawlers can address; embedUrl is appropriate for iframe players including YouTube embed addresses. Supplying at least one of the two is strongly recommended—validation warns when both are blank. interactionStatistic maps to InteractionCounter with interactionType WatchAction and userInteractionCount for public view counts you are willing to disclose.
Optional publisher nests Organization with name and logo ImageObject URL when both make sense for your brand. author emits Person with name for presenters or creators. inLanguage accepts a simple language tag (for example en). isFamilyFriendly can be explicitly true or false or left unset so the property is omitted. keywords accepts comma- or newline-separated tokens and serializes to a string or array depending on count. transcript carries plain text when you publish a full or partial transcript on the page.
Clip sections build hasPart arrays of Clip entities, each with name, startOffset, endOffset in ISO 8601 duration form, and optional url deep links—ideal for chapter-style key moments. Live streaming uses publication typed as BroadcastEvent with isLiveBroadcast true plus optional startDate and endDate from datetime pickers. SeekToAction emits potentialAction with a target URL template containing the literal {seek_to_second_number} token when you want jump links aligned with Google’s key moments documentation. Templates for a hosted lesson and a live webinar plus clips help teams see realistic shapes before replacing example.com URLs.
Technical details
VideoObject sits in the Schema.org hierarchy as a CreativeWork describing audiovisual content. Google consumes it to understand eligible videos for rich results, video mode, and related surfaces when pages meet quality thresholds. The minimum viable graph emphasizes honest alignment between JSON-LD and visible player metadata; mismatched titles, thumbnails, or durations erode trust and can trigger manual review patterns.
Clip markup models key moments using hasPart and nested Clip entities with ISO 8601 startOffset and endOffset durations measured from the beginning of the parent video. SeekToAction adds potentialAction with a templated target URL so search experiences can deep link into seconds inside the player when supported. These patterns relate to how Google surfaces segmented previews but do not guarantee display for every query.
YouTube hosts billions of videos, yet your site still benefits from VideoObject when you add unique editorial framing, transcripts, or structured chapters—Google’s documentation discusses both third-party platforms and self-hosted files. contentUrl should point at the actual media file when you control delivery; embedUrl should point at a player endpoint when you rely on iframes. Many legitimate implementations include both when policies allow.
Indexing ultimately depends on crawlability, page quality, and consistent URLs. Refresh structured data after CDN changes, player migrations, or rebrands, and revalidate whenever you adjust clip timestamps to match edited masters.
Use cases
YouTube video landing pages on your own domain: many creators syndicate embeds on articles or hub pages. VideoObject JSON-LD on those URLs clarifies the relationship between your written context and the YouTube player, especially when you add unique descriptions, transcripts, or clip metadata that do not exist on youtube.com alone. Pair with Meta Checker and Open Graph tuning so social snippets align with structured data.
Course and cohort landing pages: module videos behind marketing pages benefit from duration, transcript, and publisher Organization markup tied to your training brand. Clip rows map cleanly to lesson agendas, exercises, and recap segments—helpful when students scan search results for specific chapters. Combine with FAQ schema on the same URL when you answer pricing, certification, or pacing questions.
Podcast episode pages that publish video editions: describe the episode with VideoObject, link embedUrl to YouTube or Spotify embeds, and mark inLanguage for international audiences. When episodes are time-sensitive, expires can communicate takedown windows for licensed clips.
News and media video articles: attach VideoObject to the article’s video hub with accurate uploadDate and high-resolution thumbnails that match visible posters. interactionStatistic may reflect public view counters already displayed in the hero module. Coordinate with Person schema for correspondents and Organization schema for the outlet.
Product marketing and demo reels: highlight feature walkthroughs with Clip entities for each capability, contentUrl when you self-host MP4s for crisp loading, and publisher logo for brand recognition in rich previews. Product schema belongs on SKU pages; VideoObject belongs on the narrative demo URL—use both where the user journey splits across page types.
How SynthQuery compares
Minimal schema samples often stop at name, description, and thumbnail. That may validate syntactically yet underuse the fields Google highlights for video experiences—duration, watch URLs, embed URLs, and structured key moments. Manual JSON editing works until you manage multiple clips, live broadcast windows, ISO duration math, and templated SeekToAction targets; then spreadsheets and copy-paste errors accumulate.
SynthQuery’s Video Schema Generator keeps the full workflow in one client-side workspace: YouTube auto-fill via oEmbed plus fallback, repeatable clip builders with shared duration pickers, optional BroadcastEvent toggles, SeekToAction template validation, live highlighted JSON, and opinionated checks before you open Rich Results Test. Nothing is uploaded to our servers while you draft markup. The comparison table summarizes how this differs from barebones generators that omit clips, live metadata, and validation depth—not to dismiss them, but to set expectations when you ship production video landing pages.
Aspect
SynthQuery
Typical alternatives
VideoObject coverage
Required + recommended video fields, publisher Organization with logo, author Person, transcript, keywords, interactionStatistic, expires.
Often title/description/thumbnail only; duration and URLs still typed by hand.
Rarely exposes clip rows or live broadcast toggles without editing raw JSON.
YouTube workflow
Paste URL → oEmbed with noembed fallback for title, stub description, thumbnail/embed/watch URLs; clear guidance on manual uploadDate/duration.
Manual copy from Studio or generic embed code without structured mapping.
Duration handling
Hours/minutes/seconds picker outputs ISO 8601 (PT…) for VideoObject and Clip offsets.
Expect users to memorize ISO duration syntax.
Cost & privacy
Free, unlimited client-side generation for the tool UI—no account required to build JSON-LD.
Some hosted generators log inputs or paywall exports.
How to use this tool effectively
1) Start from a template or blank form. Templates illustrate a self-hosted lesson with contentUrl and a webinar with clips, BroadcastEvent, and SeekToAction—swap every placeholder URL, title, and statistic with authentic values tied to visible page content.
2) Optionally paste a YouTube watch, embed, Shorts, or youtu.be link and click Fetch from YouTube. The tool calls YouTube oEmbed first, then falls back to noembed.com if needed. Review the auto-filled title, description stub, thumbnail, embedUrl, and contentUrl. Immediately set uploadDate (and duration if it was not inferred from a timestamp pattern in the title) using YouTube Studio or your CMS, because public oEmbed feeds do not include first-publish timestamps or runtime.
3) Complete Required: write a concise name matching the on-page headline, a description that reflects the spoken or displayed summary, an absolute thumbnailUrl that matches your poster frame, and uploadDate in ISO form (the date input outputs YYYY-MM-DD; extend to full date-time in JSON if your workflow requires it).
4) Fill Recommended: use the duration picker for ISO 8601 output, add contentUrl for direct files and/or embedUrl for players, enter a public view count only if accurate and already shown elsewhere, and set expires if the video is time-limited (licensing, promos, or event replays).
5) Add Optional brand and creator context: publisher name plus logo URL together, author presenter name, inLanguage, family-friendly flag, comma-separated keywords, and transcript text that mirrors what users can read on the page.
6) Build key moments: click Add clip for each chapter. Give each clip a short name, set start and end offsets with the same hour/minute/second pickers used for main duration, and paste an optional deep link URL. Remove unused clips so you do not ship empty shells.
7) For live or simulcast replays, enable isLiveBroadcast and provide startDate and endDate when known. For SeekToAction, supply a target template that includes {seek_to_second_number} exactly as Google’s examples illustrate.
8) Watch the live JSON-LD preview update as you type. Click Validate, resolve errors, skim warnings, then Copy JSON-LD or Download. Embed a single script tag with type application/ld+json on the canonical video landing URL; avoid conflicting duplicate VideoObject blocks.
9) Open Test in Rich Results, paste your JSON in the Code tab, and monitor Search Console after launch. Refresh markup when titles, thumbnails, or URLs change.
Limitations and best practices
Structured data must reflect what users see on the live page. Do not fabricate durations, view counts, upload dates, or transcripts to chase rich results—misrepresentation violates spam policies and can erode trust with both users and platforms. Only include interactionStatistic when the number is accurate and already public elsewhere. Thumbnails must be representative frames, not clickbait stills unrelated to the video.
Embed Video JSON-LD on the canonical URL where the primary player lives; avoid duplicating conflicting VideoObject graphs across parameter-heavy duplicates. Coordinate with your CMS so plugins do not emit a second incompatible block. Continue investing in page speed, accessible players, captions, and internal linking—schema supports discovery but does not replace production quality.
Pair this utility with the How-To Schema Generator for procedural articles, Product schema for SKU pages, FAQ schema for supporting Q&A, Meta Checker and OG Tag Generator for snippet alignment, and the full directory at https://synthquery.com/tools when you need AI detection, readability, or plagiarism workflows beyond markup.
AI detection, readability, grammar, plagiarism, and the broader marketing suite.
Frequently asked questions
Video schema usually means Schema.org VideoObject data—most often JSON-LD—embedded in a page to describe a video’s title, description, thumbnail, duration, URLs, and optional publisher, author, transcript, or clips. Search engines use it to understand video assets for potential rich results when pages qualify. It should always match what visitors see in the player and surrounding copy.
Eligible pages may earn enhanced listings with video previews, metadata such as duration or upload information, and in some cases segmented previews tied to structured clips. Appearance depends on query intent, site quality, region, and Google’s policies—not every video page earns a rich result even with perfect markup. Treat structured data as accurate labeling, not a guaranteed visual upgrade.
Key moments are chapter-like segments Google may show when your markup and page context align with their video features documentation—often involving Clip entities in hasPart and/or SeekToAction deep links with the {seek_to_second_number} pattern. They help users jump to important sections directly from search. Implementation does not guarantee display; segments should mirror real chapters you surface on-page.
YouTube already exposes metadata on youtube.com, but your site’s article or landing page may still warrant VideoObject when you add unique descriptions, transcripts, pricing context, or clips. Structured data on your domain ties the video to your brand entity, supporting clearer discovery when users find your site first. Always avoid conflicting claims between your markup and the visible player.
contentUrl should point to the actual media file or stream endpoint when you host or control direct delivery—think MP4, HLS, or similar. embedUrl should point to a player experience, commonly an iframe embed from YouTube, Vimeo, or your own player shell. Google recommends supplying at least one; many pages include embedUrl for hosted players and optionally contentUrl when a downloadable or direct file exists.
Use Clip objects inside a hasPart array on the VideoObject. Each clip should include a name, ISO 8601 startOffset and endOffset durations measured from the start of the parent video, and an optional url that deep links to the moment. This generator provides hour/minute/second pickers that translate to ISO durations so you do not hand-code PT tokens.
Discover eligibility is holistic—content quality, E-E-A-T signals, crawlability, and user interest all matter. Accurate VideoObject can help Google understand that a page is a strong video experience, but it is not a standalone Discover tactic. Focus on compelling thumbnails, honest metadata, fast loads, and consistent publishing cadences supported by sound structured data.
Google has historically documented minimum resolutions around 60×30 pixels, but practical SEO teams use large, crisp posters—often 1280×720 when available—so previews remain sharp on high-density screens. Your thumbnailUrl must be crawlable and stable; avoid blocking CDN paths with robots rules and prefer HTTPS URLs that match the visible poster image.
Yes. VideoObject supports transcript text when you publish that transcript visibly or make it clearly accessible to users. Paste plain text in this generator to emit the transcript property. Do not stuff hidden keywords; the transcript should reflect spoken content or captions. Pairing transcripts with on-page captions improves accessibility and aligns with how users consume video.
For live or recently live broadcasts, Google documents BroadcastEvent nested under publication with isLiveBroadcast and start/end timestamps when known. This generator exposes a toggle plus datetime fields to emit that pattern. Update JSON-LD after the event concludes if the video becomes a standard VOD asset with a new duration or thumbnail.