2

我正在尝试获取我在 YouTube 上发布的视频的列表

使用资源管理器时:

https://developers.google.com/youtube/v3/docs/search/list

它生成了以下查询

获取https://www.googleapis.com/youtube/v3/search?part=snippet&forMine=true&key= {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."
 }
}
4

2 回答 2

3

这可以通过向 Youtube v3 API 发出 2 个请求来完成:

  1. 您需要为此提出的第一个请求是获取您上传的视频播放列表的 ID:

    这是对 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]

  2. 第二个请求是获取上传播放列表中的所有视频。

    要从对 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} 重新发送请求以获取其余的分页结果。

于 2013-06-27T00:02:56.213 回答
1

设置forMine参数的时候,还得把type参数设置为video,这样API就知道要返回什么样的资源了。

于 2013-06-25T05:22:28.170 回答