YouTube:有没有办法获取用户观看过的视频列表?

YouTube: Is there a way I can get the list of videos viewed by the user?

我想为我的 Android 应用程序的用户构建一个视频推荐器。我有 Google OAuth 登录我的应用程序。我可以获取有关我的应用程序用户在 YouTube 上观看的视频的数据吗?

这是 v3 的两步过程 API:

1. 使用登录用户的 OAuth2 请求点击 Channels.list 方法。为 part 值传入 contentDetails 并且 mine = true.

要求:

HTTP GET: https://www.googleapis.com/youtube/v3/channels?part=contentDetails&mine=true&key={YOUR_API_KEY}

回复:

{
 "kind": "youtube#channelListResponse",
 "etag": "\"xmg9xJZuZD438sF4hb-VcBBREXc/41Jk5t11dHi2JfUXrF4jZJhaQnE\"",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 1
 },
 "items": [
  {

   "kind": "youtube#channel",
   "etag": "\"xmg9xJZuZD438sF4hb-VcBBREXc/wfaiZMzCHBlyq_ZFJU5pMR4q4sg\"",
   "id": "UCt7iVnJwjBsof8IPLJHCTgQ",
   "contentDetails": {
    "relatedPlaylists": {
     "likes": "LLt7iVnJwjBsof8IPLJHCTgQ",
     "favorites": "FLt7iVnJwjBsof8IPLJHCTgQ",
     "uploads": "UUt7iVnJwjBsof8IPLJHCTgQ",
     "watchHistory": "HLt7iVnJwjBsof8IPLJHCTgQ",
     "watchLater": "WLt7iVnJwjBsof8IPLJHCTgQ"
    },
    "googlePlusUserId": "103927393533363914063"
   }
  }
 ]
}

watchHistory 键的对象是您的观看历史记录的 playlistId。保留此值以供在步骤 2 中使用。

2. 使用步骤 1 中的 watchHistory playlistId playlistItems.list 方法。

要求:

HTTP GET: https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&id=HLt7iVnJwjBsof8IPLJHCTgQ&key={YOUR_API_KEY}

回复:

{
 "kind": "youtube#playlistItemListResponse",
 "etag": "\"xmg9xJZuZD438sF4hb-VcBBREXc/ozXLhcdE2ZWgvJu3ywqxtfQeL7o\"",
 "pageInfo": {
  "totalResults": 0,
  "resultsPerPage": 5
 },
 "items": [
 ]
}

items 数组的内容将包含您的观看历史记录。

请注意,v3 API 中有一个 known bug 不会返回您的历史记录。这已在内部报告给 YouTube 团队,本应在两年前解决。