【问题标题】:YouTube API to get the health status of live streamYouTube API 获取直播健康状态
【发布时间】:2022-11-07 02:50:09
【问题描述】:

我正在尝试使用 YouTube Livestreaming API 来部分成功地获取我的直播的健康状态。当流关闭时,它会返回以下响应,有时当流启动并且运行良好时会返回以下响应。为什么当流媒体正常时搜索返回一个空结果?如何消除这种歧义?

使用的网址

https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=[Channel ID]&eventType=live&type=video&key=[API KEY]

流关闭时响应样本

{
  "kind": "youtube#searchListResponse",
  "etag": "vEIIB8AX6b5gvXSmMAHIm1mm2t8",
  "regionCode": "BR",
  "pageInfo": {
    "totalResults": 0,
    "resultsPerPage": 0
  },
  "items": []
}

【问题讨论】:

  • 我过去曾遇到过Search: list 端点的几个问题。也许只使用Videos: list 可能会解决您的问题,因为您似乎只是在寻找liveBroadcastContent 条目。
  • @BenjaminLoison:非常感谢。当我使用id 过滤器时可以工作,但是当流重新启动时,id 会随着 url 发生变化。我想使用固定的 channel_id。我想尝试将chart 过滤器与 videoCategoryId 结合使用,知道吗?
  • 然后使用this answer 检查最近的视频是否是现场直播可能会奏效。我不明白您为什么提到“我想尝试将图表过滤器与 videoCategoryId 结合使用,知道吗?”
  • @BenjaminLoison:Videos:List 是一个绝妙的主意,但唯一的缺点是我必须提供每次流重新启动时都会更改的视频 ID。
  • “但唯一的缺点是我必须提供每次流重新启动时都会更改的视频 ID”AFAIK 如果不使用错误且配额昂贵的搜索:列表端点,则没有官方解决方法。这就是为什么我建议您通过“使用this answer 检查最近的视频是否是现场直播可以解决问题”来检索视频 ID。

标签: youtube-api youtube-livestreaming-api


【解决方案1】:

通过获取以下两个 URL 之一,您将能够区分所提供的频道 ID 为 CHANNEL_ID 的 YouTube 频道是否正在直播:

  1. https://www.youtube.com/channel/CHANNEL_ID/live
  2. https://www.youtube.com/embed/live_stream?channel=CHANNEL_ID

    或者,您可以使用 Videos: list 来了解给定的 YouTube 频道是否正在直播,因为您只是在寻找最后上传的视频的 liveBroadcastContent 条目,您可以使用 this answer 检索该条目。

【讨论】:

  • 我也添加了Videos: list
猜你喜欢
  • 1970-01-01
  • 2021-01-14
  • 2014-02-09
  • 1970-01-01
  • 2014-10-16
  • 1970-01-01
  • 2017-08-19
  • 1970-01-01
  • 2017-05-10
相关资源
最近更新 更多