YouTube API直播

时间:2015-05-20 07:50:55

标签: google-api youtube-api google-oauth google-authentication youtube-livestreaming-api

我正在尝试使用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"
 }
}

问题是:

  1. 如果我要求公开直播,为什么需要验证? API密钥还不够?
  2. 还有其他方法可以获取所有用户的公开直播活动吗?

3 个答案:

答案 0 :(得分:5)

该特定API端点不仅仅返回公共流;它也可以返回私有(除了有关公共流的私人信息)。因此,授权级别位于端点前面,因此您必须使用oAuth2对用户进行身份验证(因此用户授予您显式权限,以便您能够访问该数据)。

如果您确定只需要有关广播的公开数据,则应使用Data API的视频search list端点。您可以将“channelId”参数设置为用户频道的ID,将“type”参数设置为“video”,然后将“eventType”参数设置为“completed”,“live”或“coming”。通过使用“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个电话。

答案 1 :(得分: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 :(得分:0)

如果您检查链接的页面youtube.liveBroadcasts.list,您会注意到它显示授权。

  

授权
此请求至少需要一个授权   以下范围(了解有关身份验证和   授权)。
https://www.googleapis.com/auth/youtube.readonly
  https://www.googleapis.com/auth/youtube

您无法使用公钥。您必须使用Oauth2进行身份验证才能访问youtube.liveBroadcasts.list