我正在尝试使用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"
}
}
问题是:
答案 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。