如何通过YouTube API结合OAuth获取用户订阅及观看历史?
能否通过YouTube API结合OAuth获取用户观看历史或频道订阅信息?
完全可以,关键是要配置正确的OAuth权限范围,并调用YouTube Data API v3的对应端点。以下是具体实现细节:
一、所需OAuth权限范围
你需要请求用户授权以下只读权限(避免申请不必要的高权限):
https://www.googleapis.com/auth/youtube.readonly:该权限允许读取用户的所有YouTube个人数据,包含观看历史、订阅列表等内容
二、获取用户观看历史
调用activities.list端点,筛选watch类型的活动即可拿到观看历史数据:
GET https://www.googleapis.com/youtube/v3/activities?part=snippet,contentDetails&mine=true&activityType=watch&maxResults=50
返回结果里,contentDetails.watch字段包含观看视频的ID、标题等信息;snippet.publishedAt对应具体的观看时间。
三、获取频道订阅信息
调用subscriptions.list端点,指定mine=true即可获取当前授权用户的订阅列表:
GET https://www.googleapis.com/youtube/v3/subscriptions?part=snippet,subscriberSnippet&mine=true&maxResults=50
返回结果中,snippet.title是订阅频道的名称,snippet.resourceId.channelId为频道ID,subscriberSnippet包含订阅时间等细节。
注意事项
- 用户隐私限制:如果用户在YouTube后台开启了「隐藏观看历史」或「隐藏订阅列表」,API会返回空数据或部分受限数据
- API配额消耗:
activities.list和subscriptions.list每次调用各消耗1个单位配额,需控制请求频率避免配额耗尽 - 授权限制:必须通过OAuth 2.0授权流程获取用户的访问令牌,服务账号无法代表普通用户访问个人隐私数据
内容的提问来源于stack exchange,提问作者Last_Node_Standing
相关产品推荐
相关产品推荐

