2

我正在尝试使用 API 在我的客户网站上嵌入实时事件视频。我正在尝试使用youtube.liveBroadcasts.list检索公共直播视频列表。

它正在API Explorer 查询生成器上工作。

当我将请求复制到浏览器时,出现login required错误。

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Login Required",
    "locationType": "header",
    "location": "Authorization"
   }
  ],
  "code": 401,
  "message": "Login Required"
 }
}

问题是:

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

3 回答 3

5

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

如果您确定只需要有关广播的公共数据,则应改用 Data API 的视频搜索列表端点。您可以将“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 个调用。

于 2015-05-20T08:15:21.507 回答
2

您可以使用标准Search/list端点仅返回来自特定频道的实时事件,如果您知道该频道的channelId

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}
于 2015-12-23T17:41:32.113 回答
1

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

授权
此请求需要至少具有以下范围之一的授权(阅读有关身份验证和授权的更多信息)。
https://www.googleapis.com/auth/youtube.readonly
https://www.googleapis.com/auth/youtube

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

于 2015-05-20T08:07:32.677 回答