Content markup properties of live TV channels

This section provides the details of the content markup properties for the BroadcastService, CableOrSatelliteService, TelevisionChannel, Organization entity types.

BroadcastService Specification table

Property Expected Type Description
@context Text Required - Always set to ["http://schema.org", {"@language": "xx"}]
  • Where "xx" represents the language of the strings in the feed. Each root entity context should have it's @language set to the appropriate language code in BCP 47 format format. For example, if the language is set to Spanish, the names are assumed to be in Spanish even if the subtitle/dub language is in English.
@type Text Required - Always set to BroadcastService.
@id URL Required - The content's identifier in URI format; for example, https://example.com/1234abc.
@id must meet the following requirements:
  • Globally unique across your catalog
  • Static
  • In the form of Unified Resource Identifier (URI)
Because an entity's url meets all the requirements as an identifier, we recommend you use an entity's url as @id. See the Identifier section for more details.
url URL The canonical URL of the broadcast service if the channel is available to view on the Internet. Google uses this URL to match the content in your feed to the content in Google's databases.
url must meet the following requirements:
  • url must be globally unique
  • url must contain a working canonical URL that Google can crawl.
For playback's deep link, see the target object's urlTemplate property instead.
name Text Required - The name of the network.
broadcastDisplayName Text Required - The display name for the network that users may typically see in program guides etc. The value may be the same as the name value.
alternateName Text The alternate name(s) to help users identify this broadcast service.
callSign Text The official government-issued callsign of the broadcast service.
contentRating Text or Rating Required for an adult only TV bradocast service - Overall content rating. If the content rating is given in the form of a Text string, the rating agency needs to be prepended to the rating with whitespace in between; for example, a "TV-Y" rating from agency "TVPG" in the U.S. is described as "TVPG TV-Y". See the list of agencies.
contentRating.author Text or Organization Required if contentRating uses Rating - The name of the rating agency.
contentRating.ratingValue Text Required if contentRating uses Rating - The value of the rating.
description Text A description of the broadcast service. 300-character limit. Use an array to provide the descriptions in multiple languages and/or in different lengths.
slogan Text A slogan of the broadcast service.
areaServed Country, State, City, or GeoShape The area in which users can expect to receive the broadcast service.
logo ImageObject An image that represents this broadcast service.
logo.@type Text Required if you provide an image - Always set to ImageObject.
logo.height Integer The height of the image in pixels.
logo.width Integer The width of the image in pixels.
logo.contentUrl URL Required if you provide an image - The URL of the image.
logo.regionsAllowed Country The countries (in the ISO 3166-1 alpha-2 format) where the image is allowed. If not specified, we assume that the image is allowed to be displayed in all regions. To provide different images based on the regions, use an array to specify multiple images while mapping each image with its own set of countries and corresponding URL.
potentialAction WatchAction Required if applicable - An Action markup object that provides the details of the action. See the Action markup properties for details.
videoFormat Text The highest quality definition supported on this broadcast service; for example,
  • "SD" for standard-definition.
  • "HD" for high-definition.
  • "4K" for 4K resolution.
  • "8K" for 8K resolution.
broadcastTimezone Text The timezone of this broadcast service in IANA format; for example, America/Los_Angeles. Use an array for multiple timezones.
broadcastAffiliateOf Organization Required - The TV network that provides programming for this broadcast service or the organization that this broadcast service belongs to.
broadcastAffiliateOf.@id Text Required - Set to @id of the TV network.
broadcastAffiliateOf.@type Text Required - Always set to Organization.
identifier PropertyValue External or other ID that identifies this entity, such as _PARTNER_ID_. Multiple identifiers are allowed. See the Identifier properties section for details. The _PARTNER_ID_ identifier is required for Android TV integration.

BroadcastService Example

{
  "@context":["http://schema.org", {"@language": "en"}],
  "@type":"BroadcastService",
  "@id":"http://example.com/stations/example-tv",
  "name":"EXAMPLE-TV",
  "broadcastDisplayName":"ABCD",
  "callSign": "EXA-TV",
  "videoFormat":"SD",
  "broadcastTimezone":"America/Los_Angeles",
  "broadcastAffiliateOf":{
    "@type":"Organization",
    "@id":"http://example.com/networks/abcd-network"
  },
  "identifier": [
   {
     "@type": "PropertyValue",
     "propertyID": "TMS_ID",
     "value": "12258"
   },
   {
     "@type": "PropertyValue",
     "propertyID": "_PARTNER_ID_",
     "value": "exampletv-123456"
   }
  ],
  "potentialAction": {
    "@type": "WatchAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "http://example.com/livestream",
      "actionPlatform": [
        "http://schema.org/DesktopWebPlatform",
        "http://schema.org/MobileWebPlatform",
        "http://schema.org/AndroidPlatform",
        "http://schema.org/IOSPlatform",
        "http://schema.googleapis.com/GoogleVideoCast",
        "http://schema.org/AndroidTVPlatform"
      ]
    },
    "actionAccessibilityRequirement": {
      "@type": "ActionAccessSpecification",
      "category": "externalsubscription",
      "availabilityStarts": "2018-07-21T10:35:29Z",
      "availabilityEnds": "2019-10-21T10:35:29Z",
      "requiresSubscription": {
        "@type": "MediaSubscription",
        "@id": "http://example.com/subscription",
        "name": "ABCD",
        "sameAs": "http://example.com/subscription",
        "authenticator": {
          "@type": "Organization",
          "name": "TVE"
        }
      },
      "eligibleRegion": [
        {
          "@type": "Country",
          "name": "US"
        }
      ]
    }
  }
}

CableOrSatelliteService specification table

Property Expected Type Description
@context Text Required - Always set to ["http://schema.org", {"@language": "xx"}]
  • Where "xx" represents the language of the strings in the feed. Each root entity context should have it's @language set to the appropriate language code in BCP 47 format format. For example, if the language is set to Spanish, the names are assumed to be in Spanish even if the subtitle/dub language is in English.
@type Text Required - Always set to CableOrSatelliteService.
@id URL Required - The content's identifier in URI format; for example, https://example.com/1234abc.
@id must meet the following requirements:
  • Globally unique across your catalog
  • Static
  • In the form of Unified Resource Identifier (URI)
Because an entity's url meets all the requirements as an identifier, we recommend you use an entity's url as @id. See the Identifier section for more details.
name Text Required - The name of the network.
areaServed Country, State, City, or GeoShape The area in which users can expect to receive the broadcast service.
provider Oragnization Required - The parent provider of the service, if applicable. For example, ExampleTV is the provider of its regional services ExampleTV San Francisco and ExampleTV San Diego.
provider.@id Text Required - The ID of the TV operator.
provider.@type Text Required - Always set to Organization.
identifier PropertyValue External or other ID that identifies this entity, such as a Gracenote TMS ID for this broadcast service. Multiple identifiers are allowed. See the Identifier properties section for details.

CableOrSatelliteService examples

Example of a cable or satellite service:

{
  "@context":["http://schema.org", {"@language": "en"}],
  "@type":"CableOrSatelliteService",
  "@id":"http://example.com/provider-lineups/exampletv-san-francisco",
  "name":"ExampleTV San Francisco",
  "provider": {
    "@type": "Organization",
    "@id": "http://example.com/providers/exampletv",
    "name": "ExampleTV"
  },
  "areaServed":[
    {
      "@type":"GeoShape",
      "@id": "http://example.com/area1"
    }
  ],
  "identifier": {
    "@type": "PropertyValue",
    "propertyID": "TMS_ID",
    "value": "12345"
  }
}

{
  "@type": "GeoShape",
  "@id": "http://example.com/area1",
  "addressCountry": "US",
  "postalCode": [
    "94118",
    "94119"
  ]
}

Example of a Virtual Multichannel Video Programming Distributor (vMVPD):

{
  "@context":["http://schema.org", {"@language": "en"}],
  "@type":"CableOrSatelliteService",
  "@id":"http://example.com/providers/my-online-example-tv",
  "name":"My Online Example TV",
  "provider": {
    "@type": "Organization",
    "@id": "http://my-online-tv.com",
    "name": "MyExampleOnlineTV",
  },
  "areaServed":[
    {
      "@type":"Country",
      "name": "US",
    },
    {
      "@type":"Country",
      "name": "CA",
    }
  ]
}

TelevisionChannel specification table

Property Expected Type Description
@context Text Required - Always set to ["http://schema.org", {"@language": "xx"}]
  • Where "xx" represents the language of the strings in the feed. Each root entity context should have it's @language set to the appropriate language code in BCP 47 format format. For example, if the language is set to Spanish, the names are assumed to be in Spanish even if the subtitle/dub language is in English.
@type Text Required - Always set to TelevisionChannel.
@id URL Required - The content's identifier in URI format; for example, https://example.com/1234abc.
@id must meet the following requirements:
  • Globally unique across your catalog
  • Static
  • In the form of Unified Resource Identifier (URI)
Because an entity's url meets all the requirements as an identifier, we recommend you use an entity's url as @id. See the Identifier section for more details.
broadcastChannelId Text Required - A unique identifier by which this BroadcastService can be identified as a cable, satellite, or Internet TV service.
  • In the US, this is typically a number for cable or satellite TV.
  • For an Internet TV service (for example, a vMVPD), provide the channel name.
broadcastServiceTier Text Use the following values:
  • Free for the channel that do not require subscriptions.
  • Standard for the channels included with a basic subscription.
  • Premium for the channels that require a payment on top of the basic subscription.
Use an array to provide multiple values.
inBroadcastLineup CableOrSatelliteService Required - The @id of the CableOrSatelliteService that provides this channel to the viewers.
providesBroadcastService BroadcastService Required - The @id of the BroadcastService whose programming this channel provides.

TelevisionChannel examples

Example of a cable or satellite TV channel:

{
  "@context":["http://schema.org", {"@language": "en"}],
  "@type":"TelevisionChannel",
  "@id":"http://example.com/channels/exampleTV/example-tv-7",
  "broadcastChannelId":"7",
  "broadcastServiceTier":["Premium", "Standard"],
  "inBroadcastLineup":{
    "@type":"CableOrSatelliteService",
    "@id":"http://example.com/providers/exampleTV-san-francisco"
  },
  "providesBroadcastService":{
    "@type":"BroadcastService",
    "@id":"http://example.com/stations/example-tv"
  }
}

Example for an online TV channel:

{
  "@context":["http://schema.org", {"@language": "en"}],
  "@type":"TelevisionChannel",
  "@id":"http://example.com/channels/my-online-example-tv/sport-channel",
  "broadcastChannelId":"sport-channel",
  "broadcastServiceTier":"Premium",
  "inBroadcastLineup":{
    "@type":"CableOrSatelliteService",
    "@id":"http://example.com/providers/my-online-example-tv"
  },
  "providesBroadcastService":{
    "@type":"BroadcastService",
    "@id":"http://example.com/stations/sport-channel"
  }
}

Organization specification table

Property Expected Type Description
@context Text Required - Always set to ["http://schema.org", {"@language": "xx"}]
  • Where "xx" represents the language of the strings in the feed. Each root entity context should have it's @language set to the appropriate language code in BCP 47 format format. For example, if the language is set to Spanish, the names are assumed to be in Spanish even if the subtitle/dub language is in English.
@type Text Required - Always set to Organization.
@id URL Required - The content's identifier in URI format; for example, https://example.com/1234abc.
@id must meet the following requirements:
  • Globally unique across your catalog
  • Static
  • In the form of Unified Resource Identifier (URI)
Because an entity's url meets all the requirements as an identifier, we recommend you use an entity's url as @id. See the Identifier section for more details.
name Text Required - The name of the TV network, TV content provider, or TV operator.
description Text A description of the organization. 300-character limit. Use an array to provide the descriptions in multiple languages and/or in different lengths.
sameAs URL A URL to a Wikipedia page that can identify the TV network. This must be distinct from the url property. Only populate with Wikipedia page that talks about a single channel/network entity. Note that Wikipedia pages might use terminology "channel".
url URL The URL of the organization. Google uses this URL to accurately reconcile this organization with the organization in Google's databases.
identifier PropertyValue External or other ID that identifies this entity, such as a TMS ID for this organization. Multiple identifiers are allowed. See the Identifier properties section for details.

Organization example

{
  "@context":["http://schema.org", {"@language": "en"}],
  "@type":"Organization",
  "@id":"http://example.com/networks/abcd-network",
  "name":"ABCD",
  "identifier": [
    {
      "@type": "PropertyValue",
      "propertyID": "TMS_ID",
      "value": "12345"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "_PARTNER_ID_",
      "value": "exampletv-12345"
    }
  ]
}

Check out the following pages for the topics related to these properties: