Video Structured Data For SEO

Google search is an entry point for people to discover your videos. Providing additional details about the videos to google explicitly can lead to better SEO. One can share all these additional video data with google with VideoObject

VideoObject

The full definition of VideoObject is available here. You can include the following required properties along with some recommended properties.

Required Properties

KeyDetailsType
descriptionThe description of the video. HTML tags are ignored.Text
nameTitle of the videoText
thumbnailUrlA URL pointing to the video thumbnail image file.URL
uploadDateThe date when a video was first published, in ISO 8601 format.Date

Recommended Properties

KeyDetailsType
contentUrlA URL pointing to the actual video media file. Here are all supporting formats.URL
durationThe duration of the video is in ISO 8601 format. For example, PT00H20M8S represents a duration of "twenty minutes and eight seconds".Duration
embedUrlA URL pointing to a player for the specific video. Don't link to the page where the video lives; this must be the URL of the video player itself. Usually, this is the information in the src element of a tag.

This is an alternative if you are not passing contentUrl
URL
expiresIf applicable, the date after which the video will no longer be available, in ISO 8601 format. Don't supply this information if your video does not expire.Date
regionsAllowedThe regions where the video is allowed. If not specified, then Google assumes the video is allowed everywhere. Specify the countries in ISO 3166 format.Place
publicationIf your video is happening live and you want to be eligible for the LIVE badge.Object

Example

{
      "@context": "https://schema.org",
      "@type": "VideoObject",
      "name": "Sample Gumlet Video",
      "description": "This is a sample video description for sample video.",
      "thumbnailUrl": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg"
       ],
      "uploadDate": "2022-01-15T08:00:00+08:00",
      "duration": "PT1M54S",
      "contentUrl": "https://www.example.com/video/123/file.mp4",
      "embedUrl": "https://www.example.com/embed/123",
      "regionsAllowed": "IN,US"
    }

For live videos, we can add property like below.

"publication": [
        {
          "@type": "BroadcastEvent",
          "isLiveBroadcast": true,
          "startDate": "2022-10-27T14:00:00+00:00",
          "endDate": "2022-10-27T15:00:00+00:00"
        }
     ]