使用YouTube API v3来判断频道是否有直播

Sco*_*alt 10 youtube-api

在给定channelId的情况下,我的YouTube API调用的目标是返回该频道当前是否为直播.这是我目前的电话:

https://www.googleapis.com/youtube/v3/search?part=snippet&channelId={CHANNEL_ID}&eventType=live&type=video&key={YOUR_API_KEY}
Run Code Online (Sandbox Code Playgroud)

虽然此调用有效,但在启动实时流的通道与返回流的此调用之间存在显着延迟.

有没有更好的电话在YouTube v3 API中使用,不需要oAuth?我的应用程序的功能是只读的.

谢谢!

小智 3

可能已经晚了,但仍然有人会使用它,我在 google api 文档上找到了答案:

https://developers.google.com/youtube/v3/live/docs/liveBroadcasts/list (滚动到底部,您可以使用他们的现场 api 即时拨打电话)

您必须拨打的电话是:

GET https://www.googleapis.com/youtube/v3/liveBroadcasts?part=id%2Csnippet%2Cstatus&mine=true&broadcastStatus=active&key={YOUR_API_KEY}
Run Code Online (Sandbox Code Playgroud)

(atm,他们的状态字段有问题)。您可以删除过滤器并检查返回的结果

{ "status": { "lifeCycleStatus": "live"}}
Run Code Online (Sandbox Code Playgroud)

根据谷歌文档:

在你开始之前

您需要一个 Google 帐户才能访问 Google Developers Console、请求 >API 密钥并注册您的应用程序。向 Google 注册您的应用程序,以便它可以提交 API 请求。注册您的应用程序后,选择 YouTube Data API 作为您的应用程序使用的服务之一:

转到开发者控制台并选择您刚刚注册的项目。在 Google 开发者控制台中打开 API 库。如果出现提示,请选择 > 项目或创建一个新项目。在 API 列表中,确保 >YouTube Data API v3 以及 YouTube >Content ID API(如果您是 YouTube 内容合作伙伴)的状态为开启。

调用数据API

API 请求必须由拥有 > 广播 YouTube 频道的 Google 帐户授权。

您可以检查此链接以生成访问(OAuth 2.0)令牌: https: //developers.google.com/identity/protocols/OAuth2?hl =en

我希望这有帮助。

  • “mine=true”位是另一个美中不足。它告诉您您自己的频道是否有直播。它不允许您查询其他人的频道。如果您正在编写 OBS 插件,则很有用;如果您正在编写一个小部件来通知您正在关注的人,则毫无用处。 (8认同)
  • 找出原因,截至此评论,YouTube 需要 OAUTH 才能与 API 的 liveBroadcast 部分交互。这个答案不再有效,因为它使用 API 密钥而不是 Oauth (4认同)
  • 我不接受这个答案,因为它现在需要 OAUTH,而我最初的问题是关于不需要 OAUTH 的请求。 (4认同)