YouTube API live broadcast



我正在尝试使用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. 是否有其他方法可以获取所有用户的公共直播事件?

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

如果您确定只需要有关广播的公共数据,则应使用数据API的视频搜索列表端点。您可以将" ChannelID"参数设置为用户频道的ID,将"类型"参数"设置为"视频",然后将" EventType"参数设置为"已完成"," Live"或"即将到来"。通过使用" 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个电话。

您可以使用标准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}

如果您检查了链接的页面youtube.livebroadcasts.list。

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

您不能对此使用公共密钥。您必须使用oauth2进行身份验证以访问youtube.livebroadcasts.list。

相关内容

  • 没有找到相关文章

最新更新