You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

能否通过YouTube API按频道名/ID获取用户上传的全部视频列表?

当然可行!这其实是YouTube API里非常常用的操作,我来给你拆解具体步骤:

第一步:获取目标频道的「上传视频播放列表ID」

你之前看的Channels List API确实默认只返回基础信息,但只要调整请求的part参数,就能拿到关键的播放列表ID:

  • 如果知道频道ID:调用Channels List时指定part=contentDetails&id=你的频道ID,返回结果里的items[0].contentDetails.relatedPlaylists.uploads就是该频道所有上传视频的专属播放列表ID。
  • 如果只有频道名称:把参数换成part=contentDetails&forUsername=你的频道名称,同样能拿到这个上传播放列表ID。

第二步:遍历播放列表获取所有视频

拿到上传播放列表ID后,用PlaylistItems.list API来获取列表里的所有视频:

  • 请求参数需要包含part=snippet,contentDetails(这样能拿到视频ID、标题、发布日期等基础信息),加上playlistId=刚才拿到的播放列表ID,还有maxResults=50(这是单次请求的最大返回数)。
  • 如果频道上传的视频超过50个,API返回结果里会有nextPageToken,把这个token作为参数加入下一次请求,反复调用直到没有nextPageToken,就能拿到所有上传视频。

第三步:(可选)获取视频的详细信息

如果需要视频的时长、观看量、评论数这些更详细的数据,把从PlaylistItems里拿到的contentDetails.videoId收集起来,批量调用Videos.list API:

  • 参数设置为part=snippet,contentDetails,statistics&id=视频ID1,视频ID2,...(一次最多可以传50个视频ID),就能批量获取你需要的详细信息。

注意事项

  • API配额限制:PlaylistItems和Videos的单次请求各消耗1个配额单位,批量请求50个视频也只算1个单位,所以合理批量调用能节省配额。
  • 隐私权限:如果频道的视频是私有或未列出状态,你的API密钥没有对应权限的话,是无法获取这些视频的,会返回权限错误。

内容的提问来源于stack exchange,提问作者semiflex

火山引擎 最新活动