3

我正在使用 YouTube API 3.0,并希望按作者搜索视频。我将如何做到这一点?

我正在使用 python 客户端库。

4

1 回答 1

5

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

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

如果您不知道用户的 channel_id,则必须调用 Search 资源(将 kind 设置为 '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\""
  }
 ]
}

如您所见,他们的 channelId = UC_x5XG1OV2P6uZZ5FSM9Ttw

调用 Channel 资源的 contentDetais 部分以查找他们的 Uploads Playlist:

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"
    }
   }
  }
 ]
}

如您所见,他们上传的播放列表 id 是 UU_x5XG1OV2P6uZZ5FSM9Ttw

调用 PlaylistItems 资源以获取 GoogleDevelopers 上传的视频:

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

于 2013-02-07T21:27:05.813 回答