我正在尝试获取我在YouTube 中发布的视频列表
使用浏览器时:
https://developers.google.com/youtube/v3/docs/search/list
它生成了以下查询
得到https://www.googleapis.com/youtube/v3/search?part=snippet&forMine=true&密钥={YOUR_API_key}
以及以下(400)响应:
{
"error": {
"errors": [
{
"domain": "youtube.search",
"reason": "invalidSearchFilter",
"message": "Invalid combination of search filters and/or restrictions.",
"locationType": "parameter",
"location": ""
}
],
"code": 400,
"message": "Invalid combination of search filters and/or restrictions."
}
}
这可以通过向Youtube v3 API发出2个请求来完成:
-
您需要为此提出的第一个请求是获取您的上传的视频播放列表:
这是对url:的GET请求
"https://www.googleapis.com/youtube/v3/channels"
带标题:
"Content-type": "application/json", "Authorization": "Bearer %s" % {YOUR ACCESS TOKEN}
和参数:
"part": "contentDetails", "mine": "true", "key": {YOUR APPLICATION KEY}
从您想要访问的响应:
response_body["items"][0][contentDetails][relatedPlaylists][uploads]
-
第二个请求是获取您拥有的所有视频您上传的播放列表。
首先向URL:发出get请求
"https://www.googleapis.com/youtube/v3/playlistItems"
发送标头:
"Content-type": "application/json", "Authorization": "Bearer %s" % {YOUR AUTH TOKEN}
和参数:
"part": "snippet", {Add other "parts" here like stats if you want that info.} "maxResults": {MORE THAN 50? PAGINATION IS NEEDED / SEE BELOW}, "playlistId": {FROM ABOVE}, "key": {YOUR API KEY}
响应将包含您的视频列表及其相关信息。
如果(同时)响应中有response_body["nextPageToken"],则需要使用参数"pageToken"重新发送请求:{NEXT PAGE TOKEN}以获得其余分页结果。
在设置forMine
参数时,还必须将type
参数设置为video,以便API知道要返回什么类型的资源。