The Live TV channel integration allows users to use voice commands to watch and switch TV channels on any device that supports the Google Assistant, such as Google Home, Android, Android TV or Google TV, and more.
![Using voice to switch TV channels](https://developers-dot-devsite-v2-prod.appspot.com/actions/media/images/image-live-tv-channel-02.png?authuser=0000)
Service providers can use the BroadcastService
, CableOrSatelliteService
, TelevisionChannel
, and Organization
markup objects to provide the details of channels in Media Actions feeds, allowing Google to support the following user queries:
- "Hey Google, play ExampleTV."
- "Hey Google, tune to ExampleTV-HD."
- "Hey Google, switch to channel 7."
- "Hey Google, ExampleTV-Drama."
Live TV channel entity types
Live TV channel integration requires 4 entity types (Organization
, BroadcastService
, CableOrSatelliteService
, and TelevisionChannel
) in your media catalog feed. These entity types help answer the following questions:
- Who is the TV service provider and what services do they provide?
- What is the set of channels available as part of each of those services (also called the channel lineup)?
The following sections delve deeper into the entity types and provide answers to the preceding questions.
Keep the following relationship diagram in mind as you read through the sections below:
![Connections between various Live TV channel entity types](https://developers-dot-devsite-v2-prod.appspot.com/static/actions/media/images/image-live-tv-channel-01.jpg?authuser=0000)
Represent the TV service provider
A TV service provider, also called a TV operator, is an organization that delivers a bundle of TV programming to subscribers. In most cases, this is also the creator of the media catalog feed. This is represented by the Organization
entity. Only one such Organization
entity, representing the TV operator, should be added to the feed.
For example, a fictional IPTV service provider "ExampleTV Digital" provides access to 180 channels to its user base in the US as part of its service named "Digital Prime+".
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"Organization",
"@id":"http://example.com/exampletv/digital",
"name":"ExampleTV Digital",
"sameAs": "https://en.wikipedia.org/wiki/exampletv_digital"
}
Represent the service provided by the TV service provider
A CableOrSatelliteService
represents a regional cable, satellite, or Internet TV service provided by a TV operator. It's generally associated with the lineup of channels, and it links to the TV operator, represented by the Organization entity. One or more CableOrSatelliteService
entities can be added to the feed depending on the number of services provided by the TV operator.
In this example, one CableOrSatelliteService
entity to describe the "Digital Prime+" service that has national US coverage is created. Note how it references the "ExampleTV Digital" TV service provider using the provider
property.
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_iptv/us",
"name":"Example TV Digital Prime Plus US Service",
"provider": {
"@type": "Organization",
"@id": "http://example.com/exampletv/digital",
},
"areaServed":[
{
"@type":"Country",
"name": "US",
}
]
}
Represent the channels provided by the TV service provider
The channels are represented together by 3 entities: Organization
, BroadcastService
, and TelevisionChannel
.
The
BroadcastService
entity is the core entity that represents a television channel that distributes linear programming. It links out to theOrganization
andTelevisionChannel
entities and is referenced by the set ofBroadcastEvent
entities which together represent its programming guide (or the channel schedule).- The
BroadcastService
entity should also have well defined deep links and access requirements.BroadcastService
schema lets you restrict access to a channel based on the user's current device location (using theeligibleRegion
andineligibleRegion
properties). See the Live TV entitlement use cases for more details.
- The
The
Organization
entity represents the channel that produces and distributes TV programming. In most cases, this is a replica of theBroadcastService
entity while in other cases it may represent the TV network with which theBroadcastService
is affiliated to. TheBroadcastService
entity references theOrganization
entity using thebroadcastAffiliateOf
property. It is crucial to understand how these two entity types are related to each other. You can learn about it in the Understanding the relationship between the Organization and the BroadcastService entity section below.The
TelevisionChannel
entity identifies theBroadcastService
by a unique identifier, such as a channel number or a string, and the order in which it appears (on providers' properties, such as websites or apps) in the regional cable, satellite, or Internet TV service, represented by theCableOrSatelliteService
entity.
The TelevisionChannel
, CableOrSatelliteService
, and Organization
entities together form the notion of a lineup.
In our example, let's say that the "ABC Movies" is one of the 180 channels that "ExampleTV Digital" TV service provider provides access to as part of their "Digital Prime+" service in the US. This channel shows up as channel number 7 in the lineup and in the 18th on ExampleTV Digital's android TV app. This is represented below:
BroadcastService
One BroadcastService entity each representing the channel (in this case two BroadcastService entities for the fictional channels ExampleTV-MovieChannel and ExampleTV-ComedyChannel)
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/broadcast/movie",
"name": "ExampleTV-Movie Channel",
"alternateName": [
"Example Television Movie Channel",
"Example TV Movie Channel"
],
"description": "A fictional Internet Protocol TV movie channel.",
"broadcastDisplayName":"ExampleTV-MovieChannel",
"broadcastAffiliateOf":{
"@type":"Organization",
"@id":"http://www.example.com/exampletv/movie"
},
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "TMS_ID",
"value": "12345"
}
]
}
Organization
One Organization entity each representing the TVNetwork (in this case ExampleTV Digital Service (Organization) provides access to 2 two channels: ExampleTV-MovieChannel (Organization) and ExampleTV-ComedyChannel (Organization))
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"Organization",
"@id":"http://example.com/exampletv/movie",
"name":"ExampleTV Movie Channel",
"sameAs": "https://en.wikipedia.org/wiki/exampletv_movie"
},
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"Organization",
"@id":"http://example.com/exampletv/comedy",
"name":"ExampleTV Comedy Channel",
"sameAs": "https://en.wikipedia.org/wiki/exampletv_comedy"
}
TelevisionChannel
One (or more) TelevisionChannel entity for each BroadcastService representing the channel number on which this entity is available in the (CableOrSatelliteService) service offered by the provider (Organization - TVOperator) (in this case TelevisionChannel entities indicate that ExampleTV Digital Service IPTV has the ExampleTV Movie programming on channel 7 and the ExampleTV Comedy programming on channel 9)
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"TelevisionChannel",
"@id":"http://example.com/exampletv/extv-movie",
"broadcastChannelId":"7",
"broadcastServiceTier":"Standard",
"inBroadcastLineup":{
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_iptv/us"
},
"providesBroadcastService":{
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/broadcast/movie"
}
}
Understand the relationship between the Organization and the BroadcastService entity
The BroadcastService
entity is the core entity that represents the TV channel. Although, the Organization
entity is a required feed entity, it actually exists only to allow providers to model the three exception use cases presented below. As such, providers should adhere to the following key point for all but the exception use cases.
There are 3 exceptions to the rule of thumb, where a 1:N relationship between the Organization
and BroadcastService
entities must exist. These are discussed below:
Local or Affiliate Channels
For example, Fox has local affiliate channels, called KCPQ in Seattle, US and KTVU in San Francisco, US. KCPQ may carry local news covering Seattle while KTVU may carry programming catering specifically to the needs of the San Francisco use base. In most cases, the users may not be aware of the local name of the channel but instead simply recognize the channel as Fox.
In this case, local or affiliate channels should each be represented by their own BroadcastService
entities, all of which should connect to one Organization
entity. When the user wants to switch to these channels, they can ask the Google Assistant to either "Switch to Fox" or "Switch to KTVU/KCPQ". Google will switch to the appropriate local channel depending on the users device location and whether the user is entitled to watch the requested channel. In the earlier example, you would create one Organization entity representing Fox and link it to two BroadcastService
entities, each representing a local affiliate, KCPQ and KTVU.
Here's another example showing how ABC channel and its local affiliate channels should be modeled:
Organization Name | BroadcastService Name | Relationship |
---|---|---|
ABC | KAAL | 1:N relationship between the Organization and BroadcastService entity |
ABC | KABC | |
ABC | KAEF | |
ABC | KAKE | |
ABC | KAMC | |
ABC | KAPP | |
ABC | KATC | |
ABC | KATN | |
ABC | KATU | |
ABC | KATV |
Let's consider another example. Here, WXVT and WYOU are local CBS channels. CBS Sports Network is not a local channel and is independent from the local affilates mentioned earlier.
Organization Name | BroadcastService Name | Relationship |
---|---|---|
CBS | WXVT | 1:N relationship between the Organization and BroadcastService entity |
CBS | WYOU | |
CBS Sports Network | CBS Sports Network HD | 1:1 relationship between the Organization and BroadcastService entity |
To bring home the point, let's take the example of EPIX and EPIX 2 channels. They are both available nationally, offer different programming altogether, are not variations of one channel and are therefore not considered local channels.
Organization Name | BroadcastService Name | Relationship |
---|---|---|
EPIX | EPIX | 1:1 relationship between the Organization and BroadcastService entity |
EPIX 2 | EPIX 2 | 1:1 relationship between the Organization and BroadcastService entity |
Time shifted Channels
In this case, each time shifted channel should each be represented by its own BroadcastService
entity, all of which should connect to one Organization
entity. Here's an example showing how time-shifted channels should be modeled:
Organization Name | BroadcastService Name | Relationship |
---|---|---|
STARZ Encore | STARZ Encore West | 1:N relationship between the Organization and BroadcastService entity |
STARZ Encore | STARZ Encore East |
Channels with streaming quality difference
For example, the channels STARZ Encore Action HD and STARZ Encore Action SD carry the exact same programming (EPG) and the stream quality is the only difference between them. In this case, each video quality stream channel should each be represented by its own BroadcastService
entity, all of which should connect to one Organization
entity.
Here's an example showing how channels with streaming quality difference should be modeled:
Organization Name | BroadcastService Name | Relationship |
---|---|---|
SBS | SBS | 1:N relationship between the Organization and BroadcastService entity |
SBS | SBS HD |
Here's an example of a complicated use case that brings together all of the use-cases in play:
Organization Name | BroadcastService Name | Relationship |
---|---|---|
Starz | STARZ East | 1:N relationship between the Organization and BroadcastService entity due to time-shifted channels |
Starz | STARZ West | |
STARZ Kids & Family | STARZ Kids & Family | 1:1 relationship between the Organization and BroadcastService entity |
STARZ Encore Black | STARZ Encore Black | 1:1 relationship between the Organization and BroadcastService entity |
STARZ Encore Clsic | STARZ Encore Classic | 1:1 relationship between the Organization and BroadcastService entity |
STARZ Encore Family | STARZ Encore Family | 1:1 relationship between the Organization and BroadcastService entity |
STARZ Encore Suspense | STARZ Encore Suspense | 1:1 relationship between the Organization and BroadcastService entity |
STARZ Encore Action | STARZ Encore Action HD | 1:N relationship between the Organization and BroadcastService entity due to streaming quality differences |
STARZ Encore Action | STARZ Encore Action SD | |
STARZ Encore | STARZ Encore West | 1:N relationship between the Organization and BroadcastService entity due to time-shifted channels |
STARZ Encore | STARZ Encore East |
Examples
National TV service provider with regional lineups
Organization
A fictional TV service provider, Example Cable TV Company (Organization
), provides Live TV
service over a cable network in two regions: New York and San Francisco. The service contains
two channels: ExampleTV (Organization
) and ExampleTV2 (Organization
):
{
"@context":"http://schema.org",
"@type":"Organization",
"@id": "http://example.com/example_cable_tv_company",
"name": "Example Cable TV Company",
"sameAs": "https://en.wikipedia.org/wiki/example_cable_company"
},
{
"@context":"http://schema.org",
"@type":"Organization",
"@id":"http://example.com/exampletv",
"name":"ExampleTV Network",
"sameAs": "https://en.wikipedia.org/wiki/exampletv"
},
{
"@context":"http://schema.org",
"@type":"Organization",
"@id":"http://example.com/exampletv2",
"name":"ExampleTV2 Network",
"sameAs": "https://en.wikipedia.org/wiki/exampletv2"
}
BroadcastService
These BroadcastService
entities provide the details of deep links and access requirement for the ExampleTV channel in HD and ExampleTV2 channel:
{
"@context":"http://schema.org",
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/broadcast/hd",
"name": "ExampleTV HD",
"description": "A fictional TV broadcast service in HD",
"broadcastDisplayName":"ExampleTV-HD",
"broadcastAffiliateOf":{
"@type":"Organization",
"@id":"http://www.example.com/exampletv"
},
"potentialAction": {
"@type": "WatchAction",
"target": [
{
"@type": "EntryPoint",
"urlTemplate": "http://www.example.com/exampletv/broadcast/hd?autoplay=true",
"inLanguage": "en",
"actionPlatform": [
"http://schema.org/DesktopWebPlatform",
"http://schema.org/MobileWebPlatform",
"http://schema.org/AndroidPlatform",
"http://schema.org/AndroidTVPlatform",
"http://schema.org/IOSPlatform"
]
},
{
"@type": "EntryPoint",
"urlTemplate": "http://www.example.com/exampletv/broadcast/androidtv/hd?autoplay=true",
"inLanguage": "en",
"actionPlatform": [
"http://schema.googleapis.com/GoogleVideoCast"
]
}
],
"actionAccessibilityRequirement": {
"@type": "ActionAccessSpecification",
"category": "subscription",
"requiresSubscription": {
"@type": "MediaSubscription",
"@id": "http://www.example.com/exampletv/basic_subscription",
"name": "Basic subscription",
"identifier": "example.com:basic",
"commonTier": true
},
"eligibleRegion": [
{
"@type": "Country",
"name": "US"
}
]
}
},
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "TMS_ID",
"value": "102610"
},
{
"@type": "PropertyValue",
"propertyID": "_PARTNER_ID_",
"value": "exampletv-12345"
}
]
},
{
"@context":"http://schema.org",
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv2/broadcast",
"name": "ExampleTV2",
"description": "A fictional TV broadcast service ExampleTV 2",
"broadcastDisplayName":"ExampleTV2",
"broadcastAffiliateOf":{
"@type":"Organization",
"@id":"http://www.example.com/exampletv2"
},
"potentialAction": {
"@type": "WatchAction",
"target": [
{
"@type": "EntryPoint",
"urlTemplate": "http://www.example.com/exampletv2/broadcast/?autoplay=true",
"inLanguage": "en",
"actionPlatform": [
"http://schema.org/DesktopWebPlatform",
"http://schema.org/MobileWebPlatform",
"http://schema.org/AndroidPlatform",
"http://schema.org/AndroidTVPlatform",
"http://schema.org/IOSPlatform"
]
},
{
"@type": "EntryPoint",
"urlTemplate": "http://www.example.com/exampletv2/broadcast/androidtv/?autoplay=true",
"inLanguage": "en",
"actionPlatform": [
"http://schema.googleapis.com/GoogleVideoCast"
]
}
],
"actionAccessibilityRequirement": {
"@type": "ActionAccessSpecification",
"category": "subscription",
"requiresSubscription": {
"@type": "MediaSubscription",
"@id": "http://www.example.com/exampletv/basic_subscription",
"name": "Basic subscription",
"identifier": "example.com:basic",
"commonTier": true
},
"eligibleRegion": [
{
"@type": "Country",
"name": "US"
}
]
}
},
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "TMS_ID",
"value": "333339"
},
{
"@type": "PropertyValue",
"propertyID": "_PARTNER_ID_",
"value": "exampletv2-11115"
}
]
}
CableOrSatelliteService
These CableOrSatelliteService
entities describe the cable TV services in New York (DMA_ID=501
) and the San Francisco Bay Area (DMA_ID=807
), which are provided by the nationwide TV service provider Example Cable TV Company (Organization
):
{
"@context":"http://schema.org",
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_cable_tv_company_new_york",
"name":"Example Cable TV Company - New York",
"provider": {
"@type": "Organization",
"@id": "http://example.com/example_cable_tv_company",
},
"areaServed":[
{
"@type": "GeoShape",
"@id": "http://example.com/newyork_01",
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "DMA_ID",
"value": "501"
}
]
}
]
},
{
"@context":"http://schema.org",
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_cable_tv_company_san_francisco_bay",
"name":"Example Cable TV Company - San Francisco Bay",
"provider": {
"@type": "Organization",
"@id": "http://example.com/example_cable_tv_company",
"name": "Example Cable TV Company"
},
"areaServed":[
{
"@type": "GeoShape",
"@id": "http://example.com/bayarea_01",
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "DMA_ID",
"value": "807"
}
]
}
]
}
TelevisionChannel
These TelevisionChannel
entities indicate that the regional TV service provider Example Cable TV Company - San Francisco Bay has ExampleTV-HD on channel 7 and ExampleTV2 on channel 11, and the regional TV service provider Example Cable TV Company - New York has ExampleTV-HD on channel 12 and ExampleTV2 on channel 4:
{
"@context":"http://schema.org",
"@type":"TelevisionChannel",
"@id":"http://example.com/example_cable_tv_company_san_francisco/exampletv",
"broadcastChannelId":"7",
"broadcastServiceTier":"Standard",
"inBroadcastLineup":{
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_cable_tv_company_san_francisco_bay"
},
"providesBroadcastService":{
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/broadcast/hd"
}
},
{
"@context":"http://schema.org",
"@type":"TelevisionChannel",
"@id":"http://example.com/example_cable_tv_company_san_francisco/exampletv2",
"broadcastChannelId":"11",
"broadcastServiceTier":"Standard",
"inBroadcastLineup":{
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_cable_tv_company_san_francisco_bay"
},
"providesBroadcastService":{
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv2/broadcast"
}
},
{
"@context":"http://schema.org",
"@type":"TelevisionChannel",
"@id":"http://example.com/example_cable_tv_company_new_york/exampletv",
"broadcastChannelId":"12",
"broadcastServiceTier":"Standard",
"inBroadcastLineup":{
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_cable_tv_company_new_york"
},
"providesBroadcastService":{
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/broadcast/hd"
}
},
{
"@context":"http://schema.org",
"@type":"TelevisionChannel",
"@id":"http://example.com/example_cable_tv_company_new_york/exampletv2",
"broadcastChannelId":"4",
"broadcastServiceTier":"Standard",
"inBroadcastLineup":{
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_cable_tv_company_new_york"
},
"providesBroadcastService":{
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv2/broadcast"
}
}
National TV service provider on the internet
Organization
A fictional Internet Protocol Television service provider, ExampleTV Digital Service (Organization
), provides Live TV service on the Internet, which contains the following two channels: ExampleTV-Movie (Organization
) and ExampleTV-Comedy (Organization
):
{
"@context":"http://schema.org",
"@type":"Organization",
"@id":"http://example.com/exampletv/digital",
"name":"ExampleTV Digital Service",
"sameAs": "https://en.wikipedia.org/wiki/exampletv_digital_service"
},
{
"@context":"http://schema.org",
"@type":"Organization",
"@id":"http://example.com/exampletv/movie",
"name":"ExampleTV Movie",
"sameAs": "https://en.wikipedia.org/wiki/exampletv_movie"
},
{
"@context":"http://schema.org",
"@type":"Organization",
"@id":"http://example.com/exampletv/comedy",
"name":"ExampleTV Comedy",
"sameAs": "https://en.wikipedia.org/wiki/exampletv_comedy"
}
BroadcastService
These two BroadcastService
entities provide the details of deep links and access requirement for the fictional channels ExampleTV-Movie and ExampleTV-Comedy:
{
"@context":"http://schema.org",
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/broadcast/movie",
"name": "ExampleTV-Movie",
"description": "A fictional Internet Protocol TV movie channel.",
"broadcastDisplayName":"ExampleTV-Movie",
"broadcastAffiliateOf":{
"@type":"Organization",
"@id":"http://www.example.com/exampletv/movie"
},
"potentialAction": {
"@type": "WatchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "http://www.example.com/exampletv/broadcast/movie?autoplay=true",
"inLanguage": "en",
"actionPlatform": [
"http://schema.org/DesktopWebPlatform",
"http://schema.org/MobileWebPlatform",
"http://schema.org/AndroidPlatform",
"http://schema.org/AndroidTVPlatform",
"http://schema.org/IOSPlatform",
"http://schema.googleapis.com/GoogleVideoCast"
]
},
"actionAccessibilityRequirement": {
"@type": "ActionAccessSpecification",
"category": "subscription",
"requiresSubscription": {
"@type": "MediaSubscription",
"@id": "http://www.example.com/exampletv/basic_subscription",
"name": "Basic subscription",
"identifier": "example.com:basic",
"commonTier": true
},
"eligibleRegion": [
{
"@type": "Country",
"name": "US"
}
]
}
},
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "TMS_ID",
"value": "12345"
},
{
"@type": "PropertyValue",
"propertyID": "_PARTNER_ID_",
"value": "exampletv-movie-33345"
}
]
},
{
"@context":"http://schema.org",
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/broadcast/comedy",
"name": "ExampleTV-Comedy",
"description": "A fictional Internet Protocol TV comedy channel.",
"broadcastDisplayName":"ExampleTV-Comedy",
"broadcastAffiliateOf":{
"@type":"Organization",
"@id":"http://www.example.com/exampletv/comedy"
},
"potentialAction": {
"@type": "WatchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "http://www.example.com/exampletv/broadcast/comedy?autoplay=true",
"inLanguage": "en",
"actionPlatform": [
"http://schema.org/DesktopWebPlatform",
"http://schema.org/MobileWebPlatform",
"http://schema.org/AndroidPlatform",
"http://schema.org/AndroidTVPlatform",
"http://schema.org/IOSPlatform",
"http://schema.googleapis.com/GoogleVideoCast"
]
},
"actionAccessibilityRequirement": {
"@type": "ActionAccessSpecification",
"category": "subscription",
"requiresSubscription": {
"@type": "MediaSubscription",
"@id": "http://www.example.com/exampletv/basic_subscription",
"name": "Basic subscription",
"identifier": "example.com:basic",
"commonTier": true
},
"eligibleRegion": [
{
"@type": "Country",
"name": "US"
}
]
}
},
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "TMS_ID",
"value": "15555"
},
{
"@type": "PropertyValue",
"propertyID": "_PARTNER_ID_",
"value": "exampletv-comedy-12323"
}
]
}
CableOrSatelliteService
This CableOrSatelliteService
describes the service provider ExampleTV Digital Service that has national coverage:
{
"@context":"http://schema.org",
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_iptv/us",
"name":"Example TV Digital Service - US",
"provider": {
"@type": "Organization",
"@id": "http://example.com/exampletv/digital",
},
"areaServed":[
{
"@type":"Country",
"name": "US",
}
]
}
TelevisionChannel
These TelevisionChannel
entities indicate that ExampleTV Digital Service IPTV has the ExampleTV Movie programming on channel ExTV-Movie
and the ExampleTV Comedy programming on channel ExTV-Comedy
:
{
"@context":"http://schema.org",
"@type":"TelevisionChannel",
"@id":"http://example.com/exampletv/extv-movie",
"broadcastChannelId":"ExTV-Movie",
"broadcastServiceTier":"Standard",
"inBroadcastLineup":{
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_iptv/us"
},
"providesBroadcastService":{
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/broadcast/movie"
}
},
{
"@context":"http://schema.org",
"@type":"TelevisionChannel",
"@id":"http://example.com/exampletv/extv-comedy",
"broadcastChannelId":"ExTV-Comedy",
"broadcastServiceTier":"Standard",
"inBroadcastLineup":{
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_iptv/us"
},
"providesBroadcastService":{
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/broadcast/comedy"
}
}
Channel lineup where channel switch is fulfilled by TV service provider
Organization
A fictional TV service provider, ExampleTV Digital Service (Organization
) provides access to fictional IPTV channels ExampleTV-Sports (Organization
) and ExampleTV-Drama (Organization
) to its users through a set top box it sells.
{
"@context":"http://schema.org",
"@type":"Organization",
"@id":"http://example.com/exampletv/digital",
"name":"ExampleTV Digital Service",
"sameAs": "https://en.wikipedia.org/wiki/exampletv_digital_service"
},
{
"@context":"http://schema.org",
"@type":"Organization",
"@id":"http://example.com/exampletv/sports",
"name":"ExampleTV Sports",
"sameAs": "https://en.wikipedia.org/wiki/exampletv_sports"
},
{
"@context":"http://schema.org",
"@type":"Organization",
"@id":"http://example.com/exampletv/drama",
"name":"ExampleTV Drama",
"sameAs": "https://en.wikipedia.org/wiki/exampletv_drama"
}
BroadcastService
These two BroadcastService
entities describe the ExampleTV-Sports and ExampleTV-Drama channels (deep links are optional):
{
"@context":"http://schema.org",
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/sports/broadcast",
"name": "ExampleTV-Sports",
"description": "A fictional Internet Protocol TV service that streams live sports events",
"broadcastDisplayName":"ExampleTV-Sports",
"broadcastAffiliateOf":{
"@type":"Organization",
"@id":"http://www.example.com/exampletv/sports"
},
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "_PARTNER_ID_",
"value": "exampletv-sports-11123"
}
]
},
{
"@context":"http://schema.org",
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/drama/broadcast",
"name": "ExampleTV-Drama",
"description": "A fictional Internet Protocol TV service that streams TV drama shows",
"broadcastDisplayName":"ExampleTV-Drama",
"broadcastAffiliateOf":{
"@type":"Organization",
"@id":"http://www.example.com/exampletv/drama"
},
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "_PARTNER_ID_",
"value": "exampletv-drama-11500"
}
]
}
CableOrSatelliteService
This CableOrSatelliteService
describes the service provider ExampleTV Digital Service that has national coverage:
{
"@context":"http://schema.org",
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_iptv/us",
"name":"Example TV Digital Service - US",
"provider": {
"@type": "Organization",
"@id": "http://example.com/exampletv/digital",
},
"areaServed":[
{
"@type":"Country",
"name": "US",
}
]
}
TelevisionChannel
These TelevisionChannel
entities indicate that ExampleTV Digital Service IPTV has the ExampleTV Movie programming on channel ExTV-Movie
and the ExampleTV Comedy programming on channel ExTV-Comedy
:
{
"@context":"http://schema.org",
"@type":"TelevisionChannel",
"@id":"http://example.com/exampletv/extv-sports",
"broadcastChannelId":"ExampleTV-Sports",
"broadcastServiceTier":"Standard",
"inBroadcastLineup":{
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_iptv/us"
},
"providesBroadcastService":{
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/drama/broadcast"
}
},
{
"@context":"http://schema.org",
"@type":"TelevisionChannel",
"@id":"http://example.com/exampletv/extv-drama",
"broadcastChannelId":"ExampleTV-Drama",
"broadcastServiceTier":"Standard",
"inBroadcastLineup":{
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_iptv/us"
},
"providesBroadcastService":{
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/drama/broadcast"
}
}
TV service provider with affiliate or local channels
Organization
A TV service provider (also called a TV operator), Example Cable TV Company (Organization
) provides Live TV service (named 'Example Cable TV Service', a CableOrSatelliteService
) over a cable network in the US. The service contains one TV network: ExampleTV Network (Organization
):
{
"@context":"http://schema.org",
"@type":"Organization",
"@id": "http://example.com/example_cable_tv_company",
"name": "Example Cable TV Company",
"sameAs": "https://en.wikipedia.org/wiki/example_cable_company"
},
{
"@context":"http://schema.org",
"@type":"Organization",
"@id":"http://example.com/exampletv",
"name":"ExampleTV Network",
"sameAs": "https://en.wikipedia.org/wiki/exampletv"
}
BroadcastService
ExampleTV Network (Organization) has 2 local channels, NYTV (BroadcastService) in New York, and NJTV (BroadcastService) in New Jersey. These BroadcastService
entities provide the details of deep links and access requirement for the NYTV and NJTV channels. Note that both these BroadcastServices connect to the same Organization (ExampleTV Network) through the broadcastAffiliateOf
property:
{
"@context":"http://schema.org",
"@type":"BroadcastService",
"@id":"https://www.example.com/nytv/broadcast",
"name": "NYTV",
"description": "A fictional TV broadcast service",
"broadcastDisplayName":"NYTV",
"broadcastAffiliateOf":{
"@type":"Organization",
"@id":"http://www.example.com/exampletv"
},
"potentialAction": {
"@type": "WatchAction",
"target": [
{
"@type": "EntryPoint",
"urlTemplate": "http://www.example.com/nytv/broadcast/hd?autoplay=true",
"inLanguage": "en",
"actionPlatform": [
"http://schema.org/DesktopWebPlatform",
"http://schema.org/MobileWebPlatform",
"http://schema.org/AndroidPlatform",
"http://schema.org/AndroidTVPlatform",
"http://schema.org/IOSPlatform"
]
}
],
"actionAccessibilityRequirement": {
"@type": "ActionAccessSpecification",
"category": "subscription",
"requiresSubscription": {
"@type": "MediaSubscription",
"@id": "http://www.example.com/nytv/basic_subscription",
"name": "Basic subscription",
"identifier": "example.com:basic"
},
"eligibleRegion": [
{
"@id": "http://sling.com/dma/501",
"@type": "GeoShape",
"addressCountry": "US",
"identifier": {
"@type": "PropertyValue",
"propertyID": "DMA_ID",
"value": "501"
}
}
]
}
},
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "TMS_ID",
"value": "102610"
},
{
"@type": "PropertyValue",
"propertyID": "_PARTNER_ID_",
"value": "nytv-12345"
}
]
},
{
"@context":"http://schema.org",
"@type":"BroadcastService",
"@id":"https://www.example.com/njtv/broadcast/hd",
"name": "NJTV HD",
"description": "A fictional TV broadcast service in HD",
"broadcastDisplayName":"NJTV-HD",
"broadcastAffiliateOf":{
"@type":"Organization",
"@id":"http://www.example.com/exampletv"
},
"potentialAction": {
"@type": "WatchAction",
"target": [
{
"@type": "EntryPoint",
"urlTemplate": "http://www.example.com/njtv/broadcast/hd?autoplay=true",
"inLanguage": "en",
"actionPlatform": [
"http://schema.org/DesktopWebPlatform",
"http://schema.org/MobileWebPlatform",
"http://schema.org/AndroidPlatform",
"http://schema.org/AndroidTVPlatform",
"http://schema.org/IOSPlatform"
]
}
],
"actionAccessibilityRequirement": {
"@type": "ActionAccessSpecification",
"category": "subscription",
"requiresSubscription": {
"@type": "MediaSubscription",
"@id": "http://www.example.com/njtv/basic_subscription",
"name": "Basic subscription",
"identifier": "example.com:basic"
},
"eligibleRegion": [
{
"@id": "http://sling.com/dma/807",
"@type": "GeoShape",
"addressCountry": "US",
"identifier": {
"@type": "PropertyValue",
"propertyID": "DMA_ID",
"value": "807"
}
}
]
}
},
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "TMS_ID",
"value": "102611"
},
{
"@type": "PropertyValue",
"propertyID": "_PARTNER_ID_",
"value": "njtv-12345"
}
]
}
CableOrSatelliteService
The CableOrSatelliteService
entity describes the cable TV services offered by the nationwide TV service provider Example Cable TV Company (Organization
):
{
"@context":"http://schema.org",
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_cable_tv_company/service",
"name":"Example Cable TV Service",
"provider": {
"@type": "Organization",
"@id": "http://example.com/example_cable_tv_company",
"name": "Example Cable TV Company"
},
"areaServed": {
"@type": "Country",
"name": "US"
}
}
TelevisionChannel
These TelevisionChannel
entities indicate that the TV service provider Example Cable TV Company has NYTV on channel 7 and NJTV HD on channel 12:
{
"@context":"http://schema.org",
"@type":"TelevisionChannel",
"@id":"http://example.com/example_cable_tv_company/nytv",
"broadcastChannelId":"7",
"broadcastServiceTier":"Standard",
"inBroadcastLineup":{
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_cable_tv_company/service"
},
"providesBroadcastService":{
"@type":"BroadcastService",
"@id":"https://www.example.com/nytv/broadcast"
}
}
{
"@context":"http://schema.org",
"@type":"TelevisionChannel",
"@id":"http://example.com/example_cable_tv_company/njtv",
"broadcastChannelId":"12",
"broadcastServiceTier":"Standard",
"inBroadcastLineup":{
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_cable_tv_company/service"
},
"providesBroadcastService":{
"@type":"BroadcastService",
"@id":"https://www.example.com/njtv/broadcast/hd"
}
}
Channel switch on Android TV
With the Live TV channel integration, users can ask Google to switch channels using voice commands. Google uses Natural Language Processing (NLP) to extract parameters from user queries and identify which channel the users want to watch. Google then handles the channel switch in one of the following ways:
- Fulfilled by Google - Google performs the channel switch using a deep link provided in a Media Action feed. The information from the feed allows Google to look up the deep link of the channel that the user wants to watch. Google then takes the user directly to the content on the service provider's app or platform.
- Fulfilled by TV service provider - Google sends a request to the service provider. Google and service providers can coordinate the task of switching channels in a number of different ways. Contact Google for details about integration with Google's other platforms (for example, AndroidTV, Made By Google, Assistant for Operators ).
The type of information needed in a Media Action feed depends on how the service provider wants Google to handle the channel switch.