如何利用YouTube API V3获取指定频道的全部视频列表?
获取YouTube频道全部视频的解决方案
要绕过Search API的500条限制,正确的做法是利用频道的官方上传播放列表来遍历所有视频,具体步骤如下:
步骤1:获取频道的Uploads播放列表ID
调用Channels.list接口,指定以下参数:
part=contentDetailsid=目标频道ID(或forUsername=频道用户名,二选一)
接口返回的响应中,contentDetails.relatedPlaylists.uploads字段就是该频道所有公开视频的专属播放列表ID,这个列表会实时同步频道的上传内容。
步骤2:遍历Uploads播放列表获取所有视频
调用PlaylistItems.list接口,通过分页遍历这个播放列表:
part=snippet,contentDetailsplaylistId=步骤1拿到的上传列表IDmaxResults=50(API允许的最大单页返回数,提升遍历效率)
每次请求后,检查响应中的nextPageToken:
- 如果存在
nextPageToken,就把它作为下一次请求的pageToken参数,继续请求下一页 - 直到响应中没有
nextPageToken,说明已经获取到该播放列表的全部视频
可选:批量获取视频详细数据
如果需要视频的播放量、点赞数等统计数据,可以把PlaylistItems返回的所有contentDetails.videoId收集起来,批量调用Videos.list接口:
part=snippet,statisticsid=用逗号分隔的多个videoId(一次最多填50个)
这种方式完全没有500条的限制,只要频道的视频是公开状态,就能完整获取所有内容,完美解决你的需求。
内容的提问来源于stack exchange,提问作者Big boy
相关产品推荐
相关产品推荐

