首页 > 解决方案 > playlistItems YouTube Data API v3 的 liveStreamingDetails

问题描述

我正在寻找一种方法来检测视频是否是实时流。YouTube 数据 APIliveStreamingDetails在使用其Videos.list端点时有一个属性。

但是,在使用PlaylistItems.list端点时不存在。

显然,我不会PlaylistItems.list为了获得这个属性而再打一次电话(之后)。有没有办法找出PlaylistItems.list直播的视频是什么?

标签: youtube-apiyoutube-data-api

解决方案


不幸的是,您的问题的答案是否定的:

根据官方规范,API 端点返回的响应PlaylistItems.list一个 JSON 对象,其items属性是PlaylistItems 资源对象的数组:

{
  "kind": "youtube#playlistItem",
  "etag": etag,
  "id": string,
  "snippet": {
    "publishedAt": datetime,
    "channelId": string,
    "title": string,
    "description": string,
    "thumbnails": {
      (key): {
        "url": string,
        "width": unsigned integer,
        "height": unsigned integer
      }
    },
    "channelTitle": string,
    "videoOwnerChannelTitle": string,
    "videoOwnerChannelId": string,
    "playlistId": string,
    "position": unsigned integer,
    "resourceId": {
      "kind": string,
      "videoId": string,
    }
  },
  "contentDetails": {
    "videoId": string,
    "startAt": string,
    "endAt": string,
    "note": string,
    "videoPublishedAt": datetime
  },
  "status": {
    "privacyStatus": string
  }
}

此对象仅包含有限数量的元数据信息,附加到PlaylistItems.list端点提供的视频项目。

因此,您必须承认,如果需要liveStreamingDetails附加到由 返回的视频的属性,您必须单独从 API 端点PlaylistItems.list请求此信息:通过将逗号分隔的列表传递给其请求参数来查询后一个端点您感兴趣的视频(但不超过 50 个)。Videos.listid

请注意,每个Videos.list端点调用都非常便宜:它只附加了一个单位的配额成本,而与传递给它的视频 ID 的数量无关。


推荐阅读