Một số loại thực thể yêu cầu bạn thiết lập mối quan hệ giữa nội dung trong nguồn cấp dữ liệu. Thông tin này giúp Google hiển thị thứ tự và cấu trúc thích hợp của nội dung cho người dùng, đồng thời xác định đúng nội dung khi truy vấn của người dùng không rõ ràng.
Chọn loại nội dung mà bạn cung cấp:
Chương trình truyền hình
Nếu là nhà cung cấp chương trình truyền hình, bạn cần thêm các loại thực thể TVEpisode
, TVSeason
và TVSeries
trong nguồn cấp dữ liệu danh mục nội dung đa phương tiện của mình. Bạn có thể tìm định nghĩa cho các thực thể này trong phần Tìm hiểu các loại thực thể hiện có bằng cách lọc theo các loại này.
Xác định mối quan hệ
Đảm bảo các mối quan hệ sau được thiết lập giữa chúng:
![](https://developers-dot-devsite-v2-prod.appspot.com/static/actions/media/images/image-media-actions-32.png?authuser=1&hl=vi)
partOfSeries
và partOfSeason
kết nối các loại thực thể của chương trình truyền hình với nhau.Thực thể
TVEpisode
yêu cầu bạn cung cấp thuộc tínhpartOfSeries
. Thuộc tính này chỉ định@id
vàname
cho thực thểTVSeries
của tập đó."partOfSeries": { "@type": "TVSeries", "@id": "http://www.example.com/my_favorite_tv_show", "name": "My Favorite TV Show", },
Nếu nguồn cấp dữ liệu của bạn chứa các phần của chương trình truyền hình, thì thực thể
TVSeason
cũng yêu cầu bạn chỉ định thực thểTVSeries
của thực thể đó trong tài sảnpartOfSeries
.Thực thể
TVEpisode
yêu cầu bạn cung cấp thuộc tínhpartOfSeason
. Thuộc tính này chỉ định@id
vàseasonNumber
cho thực thểTVSeason
của tập đó."partOfSeason": { "@type": "TVSeason", "@id": "http://www.example.com/my_favorite_tv_show/s7", "seasonNumber": 7 },
Nếu một thực thể
TVEpisode
không có thực thểTVSeason
tương ứng trong nguồn cấp dữ liệu, hãy làm theo các bước sau để cung cấp thuộc tínhpartOfSeason.@id
vàpartOfSeason.seasonNumber
cho thực thểTVEpisode
:- Hãy lấy
partofSeries.@id
và đính kèm trường truy vấn phần giữ chỗ (ví dụ: ?mùa1) để tạo mộtpartOfSeason.@id
duy nhất (ví dụ: http://www.example.com/my_favorite_tv_show?season1). - Đặt
partOfSeason.seasonNumber
thành 1.
partOfSeason.@id
hiện tại cho thực thểTVSeason
hoặc thay thế phần giữ chỗpartOfSeason.@id
bằng@id
thực tế của thực thểTVSeason
.- Hãy lấy
Ví dụ:
TVSeries
Chương trình truyền hình yêu thích của tôi
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type": "TVSeries",
"@id": "http://www.example.com/my_favorite_tv_show",
"url": "http://www.example.com/my_favorite_tv_show",
"name": "My Favorite TV Show",
"potentialAction":{ … },
...
}
TVSeason
Chương trình truyền hình yêu thích của tôi (phần 7)
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type": "TVSeason",
"@id": "http://www.example.com/my_favorite_tv_show/s7",
"url": "http://www.example.com/my_favorite_tv_show/s7",
"name": "My Favorite TV Show, Season 7",
"seasonNumber": 7,
"partOfSeries": {
"@type": "TVSeries",
"@id": "http://www.example.com/my_favorite_tv_show",
"name": "My Favorite TV Show",
},
"potentialAction":{ … },
...
}
TVEpisode
Tập 3 của Chương trình truyền hình yêu thích của tôi (phần 7)
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type": "TVEpisode",
"@id": "http://www.example.com/my_favorite_tv_show/s7/e3",
"url": "http://www.example.com/my_favorite_tv_show/s7/e3",
"name": "John Doe returns at night",
"episodeNumber": 3,
"partOfSeason": {
"@type": "TVSeason",
"@id": "http://www.example.com/my_favorite_tv_show/s7",
"seasonNumber": 7
},
"partOfSeries": {
"@type": "TVSeries",
"@id": "http://www.example.com/my_favorite_tv_show",
"name": "My Favorite TV Show",
},
"potentialAction":{ … },
...
}
Đài
Nếu là một nhà cung cấp đài phát thanh, bạn cần thêm loại thực thể RadioBroadcastService
trong nguồn cấp dữ liệu danh mục nội dung đa phương tiện. Bạn có thể tìm định nghĩa cho những thực thể này trong phần Tìm hiểu các loại thực thể hiện có bằng cách lọc theo loại này.
Xác định mối quan hệ
Vì chỉ có một loại thực thể để tích hợp như vậy, nên mặc dù không cần thiết lập mối quan hệ rõ ràng nào, hãy đảm bảo rằng bạn thu thập thông tin sau đây cho các thực thể RadioBroadcastService
:
description
: Mô tả của đài phát thanh.broadcastDisplayName
: Tên hiển thị của đài phát thanh.areaServed
: Khu vực có sẵn đài phát thanh.callSign
: Tên gọi chính thức của đài phát thanh do chính phủ cấp. Đối với các đài phát thanh ở Bắc Mỹ, thuộc tính này là bắt buộc.broadcastFrequency
: Thông số kỹ thuật về tần số của đài phát thanh.- Đối với các đài phát thanh AM/FM trên mặt đất, bạn phải cung cấp thuộc tính này.
- Đối với nội dung chỉ phát trực tuyến, giá trị được đặt thành
INTERNET_STREAM
.
broadcastAffiliateOf
: Mạng mà đài phát thanh này cung cấp lập trình. Nếu đài phát thanh không thuộc bất kỳ đơn vị liên kết nào, thì bạn không bắt buộc phải sử dụng thuộc tính này.broadcaster
: Tổ chức sở hữu và điều hành đài phát thanh.parentService
: Đài phát thanh chính. Nếu đài phát thanh là bộ lặp lại hoặc phiên dịch của một đài phát thanh khác, thì thuộc tính này là bắt buộc.
Ví dụ:
{
"@context": "http://schema.googleapis.com",
"@type": "RadioBroadcastService",
"@id": "https://www.example.com/stations?id=1",
"url": "https://www.example.com/stations?id=1",
"name": "KABC",
"callSign": "KABC-FM",
"broadcastDisplayName": "KABC",
"description": "Local News & Information",
"broadcastFrequency": {
"@type": "BroadcastFrequencySpecification",
"broadcastFrequencyValue": "89.5",
"broadcastSignalModulation": "FM",
"broadcastSubChannel": "HD1"
},
"areaServed": {
"@type": "City",
"name": "San Francisco, CA"
},
"broadcastAffiliateOf": [
{
"@id": "https://www.example.com/networks/xyz",
"@type": "Organization",
"name": "XYZ",
"sameAs": "https://en.wikipedia.org/wiki/XYZ"
},
{
"@id": "https://www.example.com/networks/efg",
"@type": "Organization",
"name": "EFG",
"sameAs": "https://www.example.com/"
}
],
"broadcaster": [
{
"@type": "Organization",
"name": "California Local Public Broadcasting",
"sameAs": "https://www.example.org/w/clpb/"
},
{
"@type": "Organization",
"sameAs": "https://www.example.org/kabc",
"name": "KABC Inc"
}
],
"potentialAction": { … },
…
}
Âm nhạc
Nếu là một nhà cung cấp nhạc, bạn cần thêm các loại thực thể MusicGroup
, MusicAlbum
và MusicRecording
trong nguồn cấp dữ liệu danh mục nội dung đa phương tiện của mình. Bạn có thể tìm định nghĩa cho các thực thể này trong phần Tìm hiểu các loại thực thể hiện có bằng cách lọc theo các loại này.
MusicGroup
, MusicAlbum
và MusicRecording
cho phép ứng dụng hoặc nền tảng của bạn phát thêm nội dung trong một danh sách phát (MusicPlaylist
) sau khi phát tất cả nội dung của thực thể gốc. Hãy xem trường hợp sau:
- Thực thể
MusicAlbum
chứa danh sách các bài hát trong Đĩa nhạc XYZ (một thực thể gốc). - Thực thể
MusicPlaylist
chứa một danh sách phát gồm các bài hát tương tự như các bài hát trong Đĩa nhạc XYZ. - Thực thể
MusicAlbum
bao gồm thực thểMusicPlaylist
dưới dạng Hành động gốc thực thể.
Trong chế độ thiết lập này, sau khi phát tất cả các bài hát trong Đĩa nhạc XYZ, ứng dụng của bạn có thể tiếp tục phát các bài hát trong danh sách phát do thực thể MusicPlaylist
cung cấp.
Hành động liên quan đến thực thể và Hành động bắt nguồn từ thực thể
Tính năng Hành động nghe hỗ trợ hai loại Hành động:
- Hành động của thực thể: Phát một nghệ sĩ, đĩa nhạc hoặc bài hát cụ thể (một thực thể hạt giống). Danh sách này bao gồm
MusicGroup
,MusicAlbum
,MusicRecording
. - Hành động gốc thực thể: Phát nội dung tương tự như thực thể gốc. Bao gồm
MusicPlaylist
.- Sau khi hoàn tất một Hành động thực thể, ứng dụng hoặc nền tảng của bạn có thể bắt đầu một Hành động gốc của thực thể.
- Hành động gốc thực thể có thể bao gồm việc phát nội dung của thực thể gốc.
Bạn nên đưa Hành động gốc của thực thể vào mọi Hành động của thực thể.
Xác định mối quan hệ
- Đối với
MusicGroup
, nếu bạn cung cấp một Hành động gốc thực thể, hãy xác định@id
vàname
trong sốMusicPlaylist
của hành động đó. - Đối với
MusicAlbum
vàMusicRecording
, bạn cần xác định xem chúng thuộcMusicGroup
nào.- Xác định
@id
vàname
trong sốMusicGroup
của nó. - Nếu bạn cung cấp Hành động gốc thực thể, hãy xác định
@id
vàname
trongMusicPlaylist
của hành động đó.
- Xác định
- Đối với
MusicPlaylist
,- Nếu có thể, hãy xác định
genre
thể hiện chính xác nhất nội dung trong danh sách phát. - Nếu danh sách phát được tuyển chọn thủ công, hãy xác định tên
numTracks
.- Nếu không có
numTracks
, Google sẽ biết rằng danh sách phát này là một danh sách phát vô tận và được tạo tự động.
- Nếu không có
- Nếu có thể, hãy xác định
Ví dụ:
MusicGroup
- Nghệ sĩ: Nghệ sĩ yêu thích của tôi
{
"@context":"http://schema.googleapis.com/",
"@type":"MusicGroup",
"@id":"http://www.example.com/artist/my_favorite_artist/",
"url":"http://www.example.com/artist/my_favorite_artist/",
"name":"My Favorite Artist",
"potentialAction":{ … },
"subjectOf": {
"@type":"MusicPlaylist",
"@id":"http://www.example.com/artist_mix/my_favorite_artist/",
"url":"http://www.example.com/artist_mix/my_favorite_artist/",
"name":"My Favorite Artist Mix",
"potentialAction":{ … },
},
...
}
MusicAlbum
- Album: Album Yêu thích của tôi
- Nghệ sĩ: Nghệ sĩ yêu thích của tôi
{
"@context":"http://schema.googleapis.com/",
"@type":"MusicAlbum",
"@id":"http://www.example.com/album/my_favorite_album",
"url":"http://www.example.com/album/my_favorite_album",
"name":"My Favorite Album",
"byArtist":{
"@type":"MusicGroup",
"@id": "http://www.example.com/artist/my_favorite_artist/",
"name":"My Favorite Artist"
},
"potentialAction":{ … },
"subjectOf": {
"@type":"MusicPlaylist",
"@id":"http://www.example.com/album_mix/my_favorite_album",
"url":"http://www.example.com/album_mix/my_favorite_album",
"name":"My Favorite Album Mix",
"potentialAction":{ … },
},
...
}
MusicRecording
- Bài hát: Bài hát yêu thích của tôi
- Nghệ sĩ: Nghệ sĩ yêu thích của tôi
{
"@context":"http://schema.googleapis.com/",
"@type":"MusicRecording",
"@id":"http://www.example.com/track/my_favorite_song",
"url":"http://www.example.com/track/my_favorite_song",
"name":"My Favorite Song",
"byArtist":{
"@type":"MusicGroup",
"@id": "http://www.example.com/artist/my_favorite_artist/",
"name":"My Favorite Artist"
},
"potentialAction":{ … },
"subjectOf": {
"@type":"MusicPlaylist",
"@id":"http://www.example.com/track_mix/my_favorite_song",
"url":"http://www.example.com/track_mix/my_favorite_song",
"name":"My Favorite Song Mix",
"potentialAction":{ … },
},
...
}
MusicPlaylist
- Danh sách phát tuỳ chỉnh: "Các bài hát nhạc Pop hàng đầu những năm 2010"
{
"@context":"http://schema.googleapis.com/",
"@type":"MusicPlaylist",
"@id":"http://www.example.com/playlist/top_pop_songs/",
"url":"http://www.example.com/playlist/top_pop_songs/",
"name":"Top Pop Songs of the 2010s",
"genre": [
"pop",
"2010s"
],
"numTracks":"46",
"potentialAction":{ … },
...
}
Truyền hình trực tuyến
Nếu là nhà cung cấp dịch vụ Truyền hình trực tuyến, bạn cần thêm các loại thực thể Organization
, BroadcastService
, CableOrSatelliteService
và TelevisionChannel
trong nguồn cấp dữ liệu danh mục nội dung đa phương tiện để đại diện cho nhóm kênh của bạn. Bạn cũng có thể cần cung cấp các thực thể BroadcastEvent
, TVSeries
, TVEpisode
, Movie
và SportsEvent
để đại diện cho EPG (hướng dẫn lập trình dành cho đại cử tri) được liên kết. Bạn có thể tìm định nghĩa cho các thực thể này trong phần Tìm hiểu các loại thực thể hiện có bằng cách lọc theo các loại này. Để xem nội dung giải thích chi tiết hơn, bạn có thể truy cập vào trang Kênh truyền hình trực tuyến.
Mối quan hệ giữa các thực thể đại diện cho kênh truyền hình trực tuyến
Hình dưới đây cho thấy mối liên hệ giữa các thực thể Organization
, BroadcastService
, CableOrSatelliteService
và TelevisionChannel
:
![Đường liên kết giữa các loại thực thể của kênh Truyền hình trực tuyến](https://developers-dot-devsite-v2-prod.appspot.com/static/actions/media/images/image-live-tv-channel-01.jpg?authuser=1&hl=vi)
- Thực thể
Organization
(toán tử) đại diện cho nhà cung cấp nguồn cấp dữ liệu và tổ chức mẹ của dịch vụCableOrSatelliteService
được kết nối bằng thuộc tínhprovider
trên thực thểCableOrSatelliteService
. - Các thực thể
Organization
tương ứng với các thực thểBroadcastService
được kết nối bằng cách sử dụng thuộc tínhbroadcastAffiliateOf
trên thực thểBroadcastService
. - Các thực thể
TelevisionChannel
kết nối với thực thểCableOrSatelliteService
đại diện cho nhóm mà thực thể đó thuộc về bằng cách sử dụng thuộc tínhinBroadcastLineup
. - Các thực thể
TelevisionChannel
kết nối với thực thểBroadcastService
. Thực thể này có khả năng lập trình do kênh này cung cấp bằng thuộc tínhprovidesBroadcastService
.
Bạn nên xem trang khái niệm về Kênh truyền hình trực tuyến để xem ví dụ cụ thể về cách thiết lập mối quan hệ giữa các thực thể BroadcastService và Tổ chức.
Mối quan hệ giữa các kênh và hướng dẫn lập trình (EPG)
Hình dưới đây cho thấy cách thực thể BroadcastEvent
liên kết với các thực thể còn lại trong nguồn cấp dữ liệu.
![Đường liên kết giữa các loại thực thể Sự kiện truyền hình trực tiếp](https://developers-dot-devsite-v2-prod.appspot.com/actions/media/images/image-live-tv-event-01.png?authuser=1&hl=vi)
- Các thực thể
BroadcastEvent
đại diện cho hướng dẫn lập trình (EPG) củaBroadcastService
, được kết nối với các thực thểBroadcastService
bằng cách sử dụng thuộc tínhpublishedOn
trên thực thểBroadcastEvent
. - Các thực thể
BroadcastEvent
cũng có thể được kết nối với các thực thểTVEpisode
,TVSeries
,Movie
cấp cao nhất bằng thuộc tínhworkPerformed
. - Bạn cũng có thể kết nối các thực thể
BroadcastEvent
với các thực thểSportsEvent
cấp cao nhất bằng thuộc tínhbroadcastOfEvent
. - Đối với các sự kiện không có kênh được phát trực tuyến, các thực thể
BroadcastEvent
kết nối với thực thể đại diện cho sự kiện trực tiếp bằng cách sử dụng thuộc tínhworkPerformed
hoặcbroadcastOfEvent
tuỳ thuộc vào nội dung đang được phát trực tiếp. Trong những trường hợp như vậy, thuộc tínhpublishedOn
là không bắt buộc vì không bắt buộc phải kết nối với kênh.
Ví dụ
Phần sau đây cung cấp các ví dụ và đoạn mã cho các trường hợp sử dụng Watch Action.
Nhà cung cấp dịch vụ truyền hình quốc gia trên Internet
Tổ chức
Một nhà cung cấp dịch vụ Truyền hình có giao thức Internet hư cấu, ExampleTV Digital Service (Organization
) cung cấp dịch vụ Truyền hình trực tuyến trên Internet với hai kênh sau: ExampleTV-Movie (Organization
) và ExampleTV-Comedy (Organization
):
{
"@context": ["http://schema.org", {"@language": "en"}],
"@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", {"@language": "en"}],
"@type":"Organization",
"@id":"http://example.com/exampletv/movie",
"name":"ExampleTV Movie",
"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",
"sameAs": "https://en.wikipedia.org/wiki/exampletv_comedy"
}
BroadcastService
Hai thực thể BroadcastService
này cung cấp thông tin chi tiết về các đường liên kết sâu cũng như yêu cầu về quyền truy cập đối với các kênh hư cấu ExampleTV-Movie và ExampleTV-Comedy:
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/broadcast/movie",
"name": "ExampleTV-Movie",
"alternateName": [
"Example Television Movie",
"Example TV 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", {"@language": "en"}],
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/broadcast/comedy",
"name": "ExampleTV-Comedy",
"alternateName": [
"Example Television Comedy",
"Example TV 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
CableOrSatelliteService
này mô tả nhà cung cấp dịch vụ Dịch vụ kỹ thuật số ExampleTV có phạm vi quốc gia:
{
"@context": ["http://schema.org", {"@language": "en"}],
"@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
Các thực thể TelevisionChannel
này cho biết rằng IPTV ExampleTV Digital Service (Dịch vụ kỹ thuật số ExampleTV) có chương trình ExampleTV Movie trên kênh ExTV-Movie
và chương trình ExampleTV hài trên kênh ExTV-Comedy
:
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"TelevisionChannel",
"@id":"http://example.com/exampletv/extv-movie",
"broadcastChannelId":"ExTV-Movie",
"broadcastServiceTier":"Basic",
"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", {"@language": "en"}],
"@type":"TelevisionChannel",
"@id":"http://example.com/exampletv/extv-comedy",
"broadcastChannelId":"ExTV-Comedy",
"broadcastServiceTier":"Basic",
"inBroadcastLineup":{
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_iptv/us"
},
"providesBroadcastService":{
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/broadcast/comedy"
}
}
Hãy tham khảo phần ví dụ về Truyền hình trực tuyến để biết thêm ví dụ.
Phát sóng một bộ phim trên một kênh truyền hình
Một bộ phim được phát sóng trên mạng truyền hình Example TV (BroadcastService
) từ 5 giờ chiều đến 7 giờ tối ngày 12 tháng 7 năm 2019.
BroadcastEvent
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type": "BroadcastEvent",
"@id": "http://example.com/live/movie/new_release",
"name": "My Favorite Movie",
"description": "John Doe spent years perfecting his survival skills in a tropical jungle.",
"startDate": "2019-07-12T17:00-08:00",
"endDate": "2019-07-12T19:00-08:00",
"videoFormat": "HD",
"isLiveBroadcast": "False",
"publishedOn": {
"@type": "BroadcastService",
"@id": "http://example.com/stations/example_tv"
},
"workPerformed": {
"@type": "Movie",
"@id": "http://www.example.com/my_favorite_movie"
}
}
BroadcastService
{
"@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"
}
]
}
}
}
Phim
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type": "Movie",
"@id": "http://www.example.com/my_favorite_movie",
"url": "http://www.example.com/my_favorite_movie",
"name": "My Favorite Movie",
"sameAs": "https://en.wikipedia.org/wiki/my_favorite_movie",
"releasedEvent": {
"@type": "PublicationEvent",
"startDate": "2008-01-20",
"location": {
"@type": "Country",
"name": "US"
}
},
"description": "John Doe spent years perfecting his survival skills in a tropical jungle.",
"actor": [
{
"@type": "Person",
"name": "John Doe",
"sameAs": "https://en.wikipedia.org/wiki/John_Doe"
},
{
"@type": "Person",
"name": "Jane Doe",
"sameAs": "https://en.wikipedia.org/wiki/Jane_Doe"
}
],
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "IMDB_ID",
"value": "tt0123456"
}
]
}
Hãy xem phần Ví dụ về Sự kiện truyền hình trực tuyến để biết thêm ví dụ.
Trận đấu thể thao trực tiếp được phát trực tuyến
Sự kiện phát sóng
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type": "BroadcastEvent",
"@id": "http://example.com/live_eevent/basketball/professional/final_game_6",
"name": "2019 Professional Basketball Finals, Game 6: Team A at Team B",
"description": "Game 6 of the 2019 Professional Basketball Finals. Team A leads the series 3-2 against Team B.",
"startDate": "2018-09-16T10:00-08:00",
"endDate": "2018-09-16T13:00-08:00",
"videoFormat": "HD",
"isLiveBroadcast": "False",
"potentialAction": {
"@type": "WatchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "http://www.example.com/pbl_semis_game?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",
"availabilityStarts": "2018-09-16T10:00-08:00",
"availabilityEnds": "2018-09-16T10:00-08:00",
"requiresSubscription": {
"@type": "MediaSubscription",
"name": "Example Package",
"commonTier": true,
"@id": "http://www.example.com/example_package"
},
"eligibleRegion": [
{
"@type": "Country",
"name": "US"
}
]
}
},
"broadcastOfEvent": {
"@type": "SportsEvent",
"@id": "http://example.com/basketball/professional/final_game_6"
}
}
Sự kiện thể thao
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"SportsEvent",
"@id": "http://example.com/basketball/professional/final_game_6",
"name":"2019 Professional Basketball Finals, Game 6: Team A vs Team B",
"sport":"https://en.wikipedia.org/wiki/Basketball",
"description": {
"@language": "en",
"@value": "Game 6 of the 2019 Professional Basketball Finals. Team A leads the series 3-2 against Team B."
},
"startDate": "2019-09-16T10:00-08:00",
"endDate": "2019-09-16T13:00-08:00",
"homeTeam":{
"@type":"SportsTeam",
"name":"Team B",
"sport":"https://en.wikipedia.org/wiki/Basketball",
"parentOrganization":{
"@type":"SportsOrganization",
"name":"Professional Basketball League",
"sameAs":"http://www.example.com/professional_basketball_league"
},
"athlete":[
{
"@type":"Person",
"name":"John doe"
}
]
},
"awayTeam":{
"@type":"SportsTeam",
"name":"Team A",
"sport":"https://en.wikipedia.org/wiki/Basketball",
"athlete":[
{
"@type":"Person",
"name":"Jane Doe"
}
]
},
"location":{
"@type":"Place",
"name":"Example Stadium",
"address":{
"@type":"PostalAddress",
"streetAddress":"1600 Amphitheatre Pkwy",
"addressLocality":"Mountain View",
"addressRegion":"CA",
"postalCode":"94043",
"addressCountry":"US"
}
},
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "TMS_ID",
"value": "TMS ID of this game"
}
]
}
Hãy xem phần Ví dụ về thể thao để có thêm ví dụ.