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 团队,本应在两年前解决。
我想为我的 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 团队,本应在两年前解决。