我想为我的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有一个已知的错误,您的历史记录将不会返回。这个问题已经在内部报告给了YouTube的团队,本应该在两年前修复的。