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

时间:2014-03-10 20:48:16

标签: 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}

虽然此通话功能正常,但在开始直播的频道与此通话返回流之间存在显着延迟。

在不需要oAuth的YouTube v3 API中使用是否有更好的使用方法?我的应用程序的功能是只读的。

谢谢!

2 个答案:

答案 0 :(得分:1)

可能迟到但仍然有人会使用它,我在google api docs上找到答案:

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}

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

{ "status": { "lifeCycleStatus": "live"}}

根据谷歌文档:

  

开始之前

     

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

     

转到开发人员控制台并选择刚刚注册的项目。   在Google Developers Console中打开API库。如果出现提示,请选择>项目或创建新项目。在API列表中,确保> YouTube数据API v3的状态为开启,如果您是YouTube内容合作伙伴,请确保YouTube>内容ID API。

     

调用Data API

     

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

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

我希望这会有所帮助。

答案 1 :(得分:0)

搜索调用相当昂贵。如果您只分配了最初的 10k 配额点,则在 100 次查询后就会用完点数,这对于某些用例来说可能不是问题,但它仍然是有限的。

相反,您可以使用 playwright 并执行以下操作: page.goto("https://YouTube.com/channel/{channel id}/live") 然后检查频道直播时将发生的重定向: const 重定向 = page.url() 如果重定向包含指向 YouTube 视频的链接,那么您就知道该频道是直播的,否则它不是直播,它将产生一个类似于传递给 goto 函数的链接。