我想为我的Android应用程序的用户构建视频推荐器。我有Google OAuth可以登录我的应用程序。我可以获取有关我的应用程序用户在YouTube上观看的视频的数据吗?
最佳答案
v3 API分为两个步骤:
1. 使用登录用户的OAuth2请求命中 Channels.list
方法。传递contentDetails
以获得part
值,并且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中的
playlistItems.list
watchHistory
命中 playlistId
方法。请求:
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团队,应该在两年前修复。
关于youtube - YouTube:有什么方法可以获取用户观看的视频列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30490864/