在给定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中使用是否有更好的使用方法?我的应用程序的功能是只读的。
谢谢!
答案 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 函数的链接。