SwiftSchema Logo

    SwiftSchema

    Intuitive Schema Generation at Your Fingertips

    AboutLearnContact

    VideoObject Schema Generator — Make Videos Discoverable

    Generate valid VideoObject JSON‑LD in minutes. Clarify title, description, thumbnails, URLs, duration, and key moments to improve understanding and eligibility.

    Why many videos underperform

    Pain points we solve

    • Missing or inaccessible thumbnails prevent compelling previews.
    • contentUrl/embedUrl confusion leads to broken experiences.
    • No duration or key moments reduces engagement and presentation quality.
    • Manual JSON‑LD is error‑prone and time‑consuming to maintain.

    How SwiftSchema helps

    Solution

    The VideoObject generator guides the essentials: title, description, at least one crawlable thumbnail, upload date, and the right combination of contentUrl/embedUrl.

    It supports ISO 8601 duration and optional key moments (hasPart with Clip) and outputs copy‑ready JSON‑LD for your player or article pages.

    How it works

    How it works

    1. Choose VideoObject in the generator below.
    2. Enter title, description, and at least one thumbnail URL (crawlable, stable).
    3. Add uploadDate, contentUrl (file) and/or embedUrl (player).
    4. Include duration (ISO 8601) and optional key moments using hasPart with Clip.
    5. Copy JSON or Script, paste on your video/article page, and validate in the Rich Results Test.
    Generate Video JSON‑LD

    Paste once per video. Validate. Ship.

    What is VideoObject structured data?

    VideoObject structured data communicates the exact video you are offering — title, synopsis, publisher, upload date, duration, thumbnail, file URLs, and playback details. Google uses it to surface standalone video results, video carousels, and “key moments” highlights. When you include high-quality metadata and connect the video to its surrounding article or channel, you help viewers understand what they’ll watch and give search engines confidence to showcase it.

    Eligibility & status

    VideoObject is a fully supported rich result. Eligibility requires that the video be accessible to the general public (or at least to Googlebot); that you provide crawlable thumbnails, a playable file or embed, and the metadata that matches the on-page player. If the video is geo-restricted, behind a paywall, or requires authentication, consider using

    contentUrl
    pointing to a signed CDN or note the restriction in copy. Keep titles, descriptions, and thumbnails aligned with platform policies.

    Why video markup matters

    • Better presentation: Structured data powers video badges, splash images, and runtime overlays in SERPs.
    • Key moments: With
      hasPart
      clips or timestamped URLs, you can highlight chapters, increasing click-through and retention.
    • Faster indexing: Google can discover and understand new videos faster when metadata is explicit.
    • Channel governance: Publishers running both on-site players and YouTube can keep metadata synchronized by generating JSON-LD from the same source.
    • Accessibility: Documenting captions, transcripts, and languages signals inclusive experiences.

    Essential properties to include

    • name
      and
      description
      : Keep them descriptive and aligned with on-page titles.
    • thumbnailUrl
      : Provide at least one 16:9 image (min 1200px) hosted on a stable CDN accessible via HTTPS.
    • uploadDate
      : ISO 8601 timestamp for first publication.
    • duration
      : ISO 8601 duration (
      PT5M12S
      ).
    • contentUrl
      and/or
      embedUrl
      : For self-hosted players, include both if possible.
      contentUrl
      should be the actual file or HLS manifest;
      embedUrl
      is the player page.
    • publisher
      with
      Organization
      and
      logo
      .
    • potentialAction
      (WatchAction) and
      interactionStatistic
      (view counts).
    • Optional:
      expires
      ,
      regionsAllowed
      ,
      inLanguage
      ,
      isFamilyFriendly
      ,
      transcript
      ,
      hasPart
      (Clip),
      accessMode
      ,
      isAccessibleForFree
      .

    Preparing video information before generating schema

    1. Gather canonical assets: Titles, descriptions, thumbnails, transcripts, captions, and hero art from your video CMS.
    2. Confirm hosting details: Know where the MP4/HLS file lives (
      contentUrl
      ) and the player URL (
      embedUrl
      ). Document CDN expiration policies so thumbnails and files stay accessible.
    3. Outline chapters: If you use key moments, compile timestamps and labels from scripts or edit timelines.
    4. Collect performance data: View counts, like counts, or completion rates can feed
      interactionStatistic
      if you want to highlight engagement.
    5. Document licensing: Note if the video is free, ad-supported, or subscriber-only. Set
      isAccessibleForFree
      accordingly and mention gating in copy.
    6. Prepare localization: Translate titles, descriptions, and captions for multi-language audiences. Decide if each language gets its own page.
    7. Assign owners: Typically video operations or editorial video teams maintain metadata. Align schema updates with video release schedules.

    Implementation workflow inside SwiftSchema

    1. Choose VideoObject in the generator and start with the canonical URL of the page hosting the player.
    2. Enter
      name
      ,
      description
      ,
      inLanguage
      ,
      isFamilyFriendly
      , and hero thumbnails.
    3. Add
      uploadDate
      ,
      duration
      ,
      contentUrl
      ,
      embedUrl
      ,
      publisher
      , and
      potentialAction
      .
    4. Attach
      hasPart
      Clip objects with
      name
      ,
      startOffset
      , and optional
      endOffset
      or timestamped URLs if you want key moments.
    5. Document captions or transcripts via
      accessMode
      ,
      transcript
      , or
      caption
      references.
    6. Provide
      interactionStatistic
      for view counts and
      regionsAllowed
      or
      expires
      if there are distribution windows.
    7. Export JSON‑LD, embed it on the video/article page, and validate with Google’s Rich Results Test and Video indexing reports.

    Troubleshooting & QA

    • Thumbnail 404s: Host thumbnails on stable CDNs. If using dynamic image resizing, ensure the URL works without cookies.
    • Blocking bots: Don’t disallow video files via robots.txt; otherwise Google can’t fetch them for preview generation.
    • Mismatched metadata: Keep titles and descriptions consistent between schema, page copy, and video overlays. Differences can confuse users.
    • Key moments rejection: Ensure Clip timestamps fall within the video duration and start from 0 seconds. Provide at least 2 clips for best results.
    • Duplicate IDs: When embedding multiple videos on one page, provide separate JSON‑LD entries per video or use structured data per video landing page.

    Maintenance and governance

    • Pair schema updates with video release workflows (final QC, encode, publish). No video should go live without JSON‑LD.
    • Monitor Search Console’s “Video pages” report for indexing or enhancement errors and fix them before the next release.
    • Keep a metadata spreadsheet or CMS field for each video; sync it with YouTube titles to maintain brand consistency.
    • When you replace a video file (new encode or re-edit), update
      contentUrl
      ,
      uploadDate
      (if appropriate), and
      duration
      .
    • Maintain CDN health: set alerts for expiring URLs, certificates, or permission changes that could break playback or thumbnails.

    Common errors & fixes

    • Missing or inaccessible thumbnail: Provide multiple thumbnail URLs in case one fails. Keep them under 2 MB and in supported formats (JPG/PNG/WebP).
    • Inaccurate uploadDate: Use the original publication date, not the last CMS edit. For updated edits, use
      dateModified
      .
    • Player vs. file confusion: Use
      embedUrl
      for on-page players (YouTube embed, custom player).
      contentUrl
      should be a downloadable file or manifest.
    • No duration: Always include ISO 8601 duration. Without it, eligibility for video features drops.
    • Omitting publisher logo: Provide a 60×60+ logo ImageObject to reinforce brand identity in video snippets.

    Required properties

    • name
    • description
    • thumbnailUrl
    • uploadDate

    Recommended properties

    • contentUrl
    • embedUrl
    • duration
    • publisher.name
    • publisher.logo
    • hasPart (key moments)
    • interactionStatistic.viewCount
    Minimal Video JSON-LD
    Validate
    {
      "@context": "https://schema.org",
      "@type": "VideoObject",
      "name": "How to Implement Product Structured Data",
      "description": "A quick walkthrough to add Product JSON-LD and validate it.",
      "thumbnailUrl": [
        "https://example.com/thumbnails/product-jsonld.webp"
      ],
      "uploadDate": "2025-06-05",
      "duration": "PT2M30S",
      "contentUrl": "https://cdn.example.com/videos/product-jsonld.mp4",
      "embedUrl": "https://example.com/player/product-jsonld"
    }

    FAQs

    What does VideoObject structured data enable?Show
    It helps search engines understand your video and can qualify content for video features. Including key moments and precise metadata can improve presentation.
    Which URLs should I include?Show
    Provide `contentUrl` (actual video file) and/or `embedUrl` (player). Always include `thumbnailUrl` and an ISO date in `uploadDate`.
    How do I mark up key moments?Show
    Use `hasPart` with `Clip` items that specify `startOffset` and `name` for each segment, or adopt the URL hash timestamp approach.
    Is duration required?Show
    Not strictly required, but recommended. Use ISO 8601 duration (for example, `PT2M30S`).

    Generate Video Object schema

    Fill in page details, copy JSON or Script, and validate.

      Schema Type

      🎥 Video Object Schema Generator

      Boost your videos' online visibility using SwiftSchema's Video Object Schema Generator. Offer detailed data such as video duration, author, and thumbnail previews for a more captivating snippet on search engine result pages. Propel your video views and interactions with this specialized tool.

      Generated Schema

      Validate your schema here.