YouTube API 直播
Posted
技术标签:
【中文标题】YouTube API 直播【英文标题】:YouTube API live broadcast 【发布时间】:2015-08-01 08:00:49 【问题描述】:我正在尝试使用 API 在我的客户网站上嵌入实时事件视频。我正在尝试使用youtube.liveBroadcasts.list 检索公共直播视频列表。
它正在处理API Explorer query builder。
当我将请求复制到浏览器时,我收到 login required
错误。
"error":
"errors": [
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
],
"code": 401,
"message": "Login Required"
问题是:
-
请求公开直播,为什么需要认证? API 密钥不够用?
还有其他方法可以获取所有用户的公开直播活动吗?
【问题讨论】:
【参考方案1】:如果您知道该频道的channelId
,则可以使用标准Search/list
端点仅返回来自特定频道的实时事件,而无需作为该频道/用户进行身份验证:
part -> snippet
channelId
-> [channelId of the channel/user with the live event]
eventType -> live
type -> video
(将eventType
设置为live
时需要)
HTTP GET https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=channelId&eventType=live&type=video&key=YOUR_API_KEY
【讨论】:
【参考方案2】:那个特定的 API 端点不仅仅返回公共流;它也可以返回私有的(除了关于公共流的私有信息)。出于这个原因,授权级别位于端点之前,因此您必须使用 oAuth2 对用户进行身份验证(因此用户授予您访问该数据的明确权限)。
如果您确定只需要有关广播的公共数据,则应改用数据 API 的视频 search list 端点。您可以将“channelId”参数设置为用户频道的 ID,将“type”参数设置为“video”,然后将“eventType”参数设置为“completed”、“live”或“upcoming”。通过使用“eventType”参数,您将搜索仅限于广播事件。因此,例如,您可以这样调用 URL:
GET https://www.googleapis.com/youtube/v3/search?eventType=live&part=snippet&channelId=UCoMdktPbSTixAyNGwb-UYkQ&type=video&key=YOUR_API_KEY
很遗憾,无法在同一个 API 调用中获得已完成、有效和即将到来的广播,因此如果您需要全部 3 个,则必须进行 3 个调用。
【讨论】:
【参考方案3】:如果您检查您链接的页面youtube.liveBroadcasts.list,您会注意到它显示授权。
授权 此请求需要至少获得以下一项的授权 以下范围(阅读有关身份验证和 授权)。 https://www.googleapis.com/auth/youtube.readonly https://www.googleapis.com/auth/youtube
您不能对此使用公钥。您必须使用 Oauth2 进行身份验证才能访问youtube.liveBroadcasts.list。
【讨论】:
以上是关于YouTube API 直播的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Youtube API 将我的 Youtube 广播转换为直播
Youtube /v3/search API 不再返回直播视频