按作者搜索YouTube视频

Ibr*_*him 2 python youtube-api

我正在使用YouTube API 3.0,并希望按作者搜索视频.我怎么做到这一点?

我正在使用python客户端库.

Mat*_*ela 5

在YouTube Data API v3中,您需要从用户的频道中找到UploadsPlaylist,然后他们会查找该频道的PlaylistItem.

例如,如果您想查找GoogleDevelopers上传内容,请先找到他们的channel_id.

如果您不知道用户的channel_id,则必须调用搜索资源(类型设置为'channel')才能找到它:

https://www.googleapis.com/youtube/v3/search?part=id&maxResults=1&q=GoogleDevelopers&type=channel&key={YOUR_API_KEY}

返回:

{
 "kind": "youtube#searchListResponse",
 "etag": "\"Sja0zsjNVqBAv0D_Jpz6t1GyTzk/fm4P2RLxOAO0xdASI5BagD86H8A\"",
 "pageInfo": {
  "totalResults": 21,
  "resultsPerPage": 1
 },
 "nextPageToken": "CAEQAA",
 "items": [
  {
   "id": {
    "kind": "youtube#channel",
    "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw"
   },
   "kind": "youtube#searchResult",
   "etag": "\"Sja0zsjNVqBAv0D_Jpz6t1GyTzk/q4hYefapiMoagc7b_3bYaVZvSJo\""
  }
 ]
}
Run Code Online (Sandbox Code Playgroud)

如您所见,他们的channelId = UC_x5XG1OV2P6uZZ5FSM9Ttw

拨打Channel资源的contentDetais部分,查找他们的上传播放列表:

https://www.googleapis.com/youtube/v3/channels?part=contentDetails&id=UC_x5XG1OV2P6uZZ5FSM9Ttw&key={YOUR_API_KEY}

哪个将返回此:

{
 "kind": "youtube#channelListResponse",
 "etag": "\"Sja0zsjNVqBAv0D_Jpz6t1GyTzk/ZouMU1qBRkF6DgacOLHE88Xk144\"",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 1
 },
 "items": [
  {
   "id": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
   "kind": "youtube#channel",
   "etag": "\"Sja0zsjNVqBAv0D_Jpz6t1GyTzk/khrrkvk8Tl0XWRZoN66zqloSJM4\"",
   "contentDetails": {
    "relatedPlaylists": {
     "uploads": "UU_x5XG1OV2P6uZZ5FSM9Ttw"
    }
   }
  }
 ]
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,他们上传的播放列表ID是UU_x5XG1OV2P6uZZ5FSM9Ttw

拨打PlaylistItems资源,获取GoogleDevelopers上传的视频:

https://www.googleapis.com/youtube/v3/playlistItems?part=id%2Csnippet%2CcontentDetails&playlistId=UU_x5XG1OV2P6uZZ5FSM9Ttw&key={YOUR_API_KEY}

  • 上周我与一些谷歌员工讨论了这个问题,他们向我保证,这是从用户名中获取频道ID的最佳方式.这对我来说似乎有点奇怪,但他们告诉我,如果你的查询直接匹配频道的用户名,它将永远是第一个结果.我只是希望它有记录...... (2认同)