Thuộc tính đánh dấu nội dung của sự kiện truyền hình trực tiếp

Phần này cung cấp thông tin chi tiết về các thuộc tính đánh dấu nội dung cho loại thực thể BroadcastEvent. Để hiểu rõ hơn về mối quan hệ giữa các loại này, hãy xem các khái niệm về Sự kiện LiveTV.

Bảng thông số kỹ thuật của BroadcastEvent

Thuộc tính Loại dự kiến Mô tả
@context Văn bản Bắt buộc – Luôn đặt thành ["http://schema.org", {"@language": "xx"}]
@type Văn bản Bắt buộc – Luôn đặt thành BroadcastEvent.
@id URL Bắt buộc – Giá trị nhận dạng của khung giờ phát sóng ở định dạng URI; ví dụ: https://example.com/live/channel1/20191012T2100.
@id phải đáp ứng các yêu cầu sau:
  • Duy nhất trên toàn cầu trong danh mục của bạn và khác biệt với workPerformed.@id hoặc broadcastOfEvent.@id (ví dụ: kết hợp kênh/dịch vụ và thời gian bắt đầu phát sóng vào URI)
  • Tĩnh; Giá trị này cũng phải ổn định và không thay đổi theo thời gian. URL này sẽ được coi là một chuỗi mờ và không cần phải là một đường liên kết đang hoạt động.
  • Ở dạng Giá trị nhận dạng tài nguyên thống nhất (URI)
  • Miền mà bạn dùng cho giá trị @id phải thuộc sở hữu của tổ chức của bạn.
Quan trọng: Đừng thêm thuộc tính url vào BroadcastEvent hoặc SportsEvent. Chỉ cung cấp url chính tắc trên thực thể nội dung cơ bản (Movie, TVSeries hoặc TVEpisode). Hãy xem phần Giá trị nhận dạng để biết thêm thông tin chi tiết.
name Văn bản Bắt buộc – Tiêu đề của chương trình hoặc sự kiện.
description Văn bản Nội dung mô tả về chương trình hoặc sự kiện. Giới hạn 300 ký tự. Sử dụng một mảng để thêm nội dung mô tả bằng nhiều ngôn ngữ (mỗi ngôn ngữ một nội dung mô tả).
startDate Ngày Bắt buộc – Thời gian bắt đầu sự kiện theo định dạng ISO 8601 kèm theo múi giờ.
endDate Ngày Thời gian kết thúc sự kiện ở định dạng ISO 8601 kèm theo múi giờ.
publishedOn BroadcastService Bắt buộc nếu có – Chỉ định thực thể BroadcastService phát sóng chương trình hoặc sự kiện này.

Nếu nội dung được phát sóng trên một kênh truyền hình, thì bạn bắt buộc phải cung cấp thuộc tính này. Nếu nội dung không liên kết với kênh truyền hình nào, đừng cung cấp thuộc tính này.
publishedOn.@type Văn bản Đặt thành BroadcastService.
publishedOn.@id URL @id của thực thể BroadcastService phát sóng chương trình hoặc sự kiện này.
workPerformed CreativeWork (Tác phẩm sáng tạo) Bắt buộc nếu có – Sử dụng thuộc tính này khi nội dung thuộc một trong các loại thực thể sau: Movie, TVSeries và TVEpisode.
Bạn nên thêm ít nhất một trong các thuộc tính sau vào thực thể BroadcastEvent:
  • workPerformed
  • broadcastOfEvent
  • contentToBeAnnounced được đặt thành true
  • offAir được đặt thành true
workPerformed.@type Văn bản Đặt thành Movie, TVSeries hoặc TVEpisode.
workPerformed.@id URL @id của thực thể nội dung.
broadcastOfEvent SportsEvent Bắt buộc nếu có – Sử dụng thuộc tính này nếu nội dung là một sự kiện trực tiếp:
  • Đối với sự kiện thể thao, thuộc tính này cần tham chiếu đến một thực thể SportsEvent.

Bạn nên thêm ít nhất một trong những thuộc tính sau vào thực thể BroadcastEvent:
  • workPerformed
  • broadcastOfEvent
  • contentToBeAnnounced được đặt thành true
  • offAir được đặt thành true
broadcastOfEvent.@type Văn bản Đặt thành SportsEvent.
broadcastOfEvent.@id URL @id của thực thể sự kiện. Thực thể sự kiện phải tồn tại trong nguồn cấp dữ liệu và có @id khác với BroadcastEvent.
location Văn bản hoặc Quốc gia Bắt buộc nếu BroadcastEvent là dành cho SportsEvent, tức là có thuộc tính broadcastOfEvent – Quốc gia mà SportsEvent cơ bản có thể được phát sóng. Trường này có thể là danh sách các quốc gia nếu có nhiều quốc gia có thể phát sóng SportsEvent.
videoFormat Văn bản Độ phân giải chất lượng cao nhất được hỗ trợ trên dịch vụ truyền hình này; ví dụ:
  • "SD" cho độ nét chuẩn.
  • "HD" cho độ nét cao.
  • "2K" cho độ phân giải 2K.
  • "4K" cho độ phân giải 4K.
  • "8K" cho độ phân giải 8K.
contentToBeAnnounced Boolean Bắt buộc nếu có – Sử dụng thuộc tính này nếu nội dung không xác định được tại thời điểm tạo nguồn cấp dữ liệu.

Đặt thành true khi nhà cung cấp không có thông tin mới nhất về nội dung sẽ được phát sóng, nếu không thì đặt thành false.
Bạn nên đặt một thực thể BroadcastEvent bao gồm ít nhất một trong các giá trị sau:
  • workPerformed
  • broadcastOfEvent
  • contentToBeAnnounced được đặt thành true
  • offAir được đặt thành true
offAir Boolean Bắt buộc nếu có – Đặt thành true khi không có nội dung nào được lên lịch phát sóng cho khung giờ trên kênh BroadcastService.
  • Đặt cả name và description thành "Off Air".
  • Mỗi offAir BroadcastEvent phải kéo dài tối đa 4 giờ (không phát các khối liên tục 24 giờ). Khi một kênh ngừng phát sóng trong hơn 4 giờ, hãy phát ra nhiều thực thể BroadcastEvent liền kề, không trùng lặp, mỗi thực thể tối đa 4 giờ để kênh duy trì phạm vi phủ sóng lịch biểu 24/7 hoàn chỉnh mà không có khoảng trống ở đầu hoặc cuối cửa sổ nguồn cấp dữ liệu.
Bạn nên thêm ít nhất một trong những thuộc tính sau vào thực thể BroadcastEvent:
  • workPerformed
  • broadcastOfEvent
  • contentToBeAnnounced được đặt thành true
  • offAir được đặt thành true
isLiveBroadcast Boolean Đặt thành giá trị boolean true (không có dấu ngoặc kép) nếu chương trình phát sóng này là chương trình phát sóng trực tiếp (ví dụ: trận đấu thể thao trực tiếp hoặc tin tức hằng ngày trực tiếp) hoặc false cho chương trình không phát sóng trực tiếp và chương trình phát lại.
potentialAction WatchAction Bắt buộc nếu có – Không bao giờ cung cấp potentialAction trên BroadcastEvent khi broadcastOfEvent tham chiếu đến SportsEvent (đặt tất cả đường liên kết sâu về thể thao trên SportsEvent.potentialAction) hoặc khi publishedOn tham chiếu đến kênh BroadcastService (đặt đường liên kết sâu về kênh trên BroadcastService.potentialAction). Chỉ cung cấp BroadcastEvent.potentialAction cho các sự kiện phát trực tiếp không có kênh và không tham chiếu đến SportsEvent (chẳng hạn như nội dung bổ trợ phát trực tiếp độc lập không có contentToBeAnnounced và offAir hoặc false).
identifier PropertyValue Mã nhận dạng bên ngoài giúp xác định nội dung phát sóng. Hãy xem phần Thuộc tính giá trị nhận dạng để biết thông tin chi tiết.
  • Lưu ý: Loại thực thể BroadcastEvent chỉ chấp nhận các giá trị propertyID là TMS_ID hoặc TMS_ROOT_ID.
  • Bạn chỉ nên cung cấp thuộc tính này cho những trường hợp không tham chiếu đến một thực thể Movie, TVSeries, TVEpisode hoặc SportsEvent cấp cao nhất được hình thành đầy đủ bằng thuộc tính workPerformed hoặc broadcastOfEvent.
  • Giá trị của thuộc tính phải phản ánh TMS_ID hoặc TMS_ROOT_ID của thực thể Movie, TVSeries, TVEpisode hoặc SportsEvent mà bạn nên tham chiếu bằng thuộc tính workPerformed hoặc broadcastOfEvent.
  • TMS_ID được ưu tiên hơn giá trị TMS_ROOT_ID.
contentRating Văn bản hoặc Điểm xếp hạng Bắt buộc đối với nội dung người lớn, nên dùng cho các nội dung khác Tại sao? – Mức phân loại nội dung tổng thể của nội dung phát sóng. Nếu mức phân loại nội dung được cung cấp dưới dạng chuỗi văn bản, thì hai biến thể sau đây sẽ được chấp nhận:
  • Tên cơ quan phân loại được thêm vào trước mức phân loại, có dấu cách ở giữa. Ví dụ: Mức phân loại "PG-13" của cơ quan "MPAA" ở Hoa Kỳ phải được mô tả là "MPAA PG-13". Xem danh sách các cơ quan.
  • Giá trị "RATING NOT KNOWN" (không phân biệt chữ hoa chữ thường) để cho biết bạn không biết mức phân loại của Phim.
contentRating.author Tổ chức Bắt buộc nếu contentRating sử dụng Rating – Tên của cơ quan phân loại.
contentRating.ratingValue Văn bản Bắt buộc nếu contentRating sử dụng Rating – Giá trị của điểm xếp hạng.
contentRating.advisoryCode Văn bản Mã cảnh báo cho nội dung. Các giá trị được chấp nhận bao gồm D, FV, L, S và V. D = Lời thoại, FV = Bạo lực giả tưởng, L = Ngôn từ, S = Nội dung tình dục, V = Bạo lực.

Ví dụ

Một tập chương trình truyền hình được phát sóng trên mạng truyền hình Example TV (BroadcastService) từ 21:00 đến 21:30 ngày 12 tháng 10 năm 2019:

BroadcastEvent

{
  "@context": ["http://schema.org", {"@language": "en"}],
  "@type": "BroadcastEvent",
  "@id": "http://example.com/live/event/my_favorite_tv_series/new_episode",
  "name": "My Favorite TV Series - Season 6 - Episode 2 - Three Mice",
  "description": "Three mice leave the town and the trip turns into something more.",
  "startDate": "2019-10-12T21:00-08:00",
  "endDate": "2019-10-12T21:30-08:00",
  "videoFormat": "HD",
  "isLiveBroadcast": false,
  "publishedOn": {
    "@type": "BroadcastService",
    "@id": "http://example.com/stations/example_tv"
  },
  "workPerformed": {
    "@type": "TVEpisode",
    "@id": "http://example.com/tv_series/my_favorite_tv_series/s6/e2_three_mice"
  }
}

BroadcastService

{
  "@context":"http://schema.org",
  "@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",
        "identifier": "example.com:basic",
        "commonTier": false
      },
      "eligibleRegion": [
        {
          "@type": "Country",
          "name": "US"
        }
      ]
    }
  }
}

Ví dụ cho thấy cách sử dụng thuộc tính contentToBeAnnounced khi nội dung sẽ được phát sóng trên mạng truyền hình Example TV (BroadcastService) từ 21:00 đến 21:30 ngày 12 tháng 10 năm 2019 không được biết đến tại thời điểm tạo nguồn cấp dữ liệu:

BroadcastEvent

{
  "@context": ["http://schema.org", {"@language": "en"}],
  "@type": "BroadcastEvent",
  "@id": "http://example.com/randomUniqueEventId",
  "name": "Content To Be Announced",
  "description": "Content To Be Announced",
  "startDate": "2019-10-12T21:00-08:00",
  "endDate": "2019-10-12T21:30-08:00",
  "publishedOn": {
    "@type": "BroadcastService",
    "@id": "http://example.com/stations/example_tv"
  },
  "contentToBeAnnounced": true
}

BroadcastService

{
  "@context":"http://schema.org",
  "@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",
        "identifier": "example.com:basic",
        "commonTier": false
      },
      "eligibleRegion": [
        {
          "@type": "Country",
          "name": "US"
        }
      ]
    }
  }
}

Kênh Example TV (BroadcastService) của mạng truyền hình ngừng phát sóng từ 12 giờ trưa đến 8 giờ tối (được mô hình hoá dưới dạng hai khối Off Air 4 giờ liền kề) và phát sóng một chương trình có tên là My favorite show từ 8 giờ tối đến 12 giờ đêm:

BroadcastEvent

{
  "@context": ["http://schema.org", {"@language": "en"}],
  "@type": "BroadcastEvent",
  "@id": "http://example.com/randomUniqueEventId1",
  "name": "Off Air",
  "description": "Off Air",
  "startDate": "2019-10-12T12:00-08:00",
  "endDate": "2019-10-12T16:00-08:00",
  "publishedOn": {
    "@type": "BroadcastService",
    "@id": "http://example.com/stations/example_tv"
  },
  "offAir": true
},
{
  "@context": ["http://schema.org", {"@language": "en"}],
  "@type": "BroadcastEvent",
  "@id": "http://example.com/randomUniqueEventId2",
  "name": "Off Air",
  "description": "Off Air",
  "startDate": "2019-10-12T16:00-08:00",
  "endDate": "2019-10-12T20:00-08:00",
  "publishedOn": {
    "@type": "BroadcastService",
    "@id": "http://example.com/stations/example_tv"
  },
  "offAir": true
},
{
  "@context": ["http://schema.org", {"@language": "en"}],
  "@type": "BroadcastEvent",
  "@id": "http://example.com/randomUniqueEventId3",
  "name": "My favorite show",
  "description": "Evening broadcast of My favorite show.",
  "startDate": "2019-10-12T20:00-08:00",
  "endDate": "2019-10-13T00:00-08:00",
  "videoFormat": "HD",
  "isLiveBroadcast": false,
  "workPerformed": {
    "@type": "TVSeries",
    "@id": "http://example.com/tv_series/my_favorite_show"
  },
  "publishedOn": {
    "@type": "BroadcastService",
    "@id": "http://example.com/stations/example_tv"
  }
}

BroadcastService

{
  "@context":"http://schema.org",
  "@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",
        "identifier": "example.com:basic",
        "commonTier": false
      },
      "eligibleRegion": [
        {
          "@type": "Country",
          "name": "US"
        }
      ]
    }
  }
}

Hãy xem các trang sau để biết các chủ đề liên quan đến những thuộc tính này: