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 API 直播

使用 Android Youtube API 播放直播流

Youtube /v3/search API 不再返回直播视频

如何在 android 的 Youtube API V3 中按频道 ID 获取 Youtube 直播?

Youtube 直播 API:liveStreamingNotEnabled