在 YouTube v3 API 中检索所有新的订阅视频



我需要知道YouTube数据API v3中的等效请求与此v2请求一样,用于检索所有新的订阅视频。

https://gdata.youtube.com/feeds/api/users/default/newsubscriptionvideos

我还没有看到任何像 v2 版本的要求一样简单干净的请求

您可以使用 Youtube V3 API 检索此信息,但它的效率非常低:

  • 首先从用户名(一个请求)获取频道 ID。
  • 现在获取频道的订阅(可批处理 - 每 50 个订阅一个请求)。
  • 现在获取每个订阅频道的播放列表(可批处理 - 每 50 个订阅者一个请求)。
  • 获取每个频道的"上传"系统播放列表的最新播放列表项。(每个子一个请求)。
  • 获取与每个播放列表项相关的视频(可批处理 - 一个请求 50 个播放列表项)。

您现在可以按发布日期对视频进行排序并打印最新的视频。

如果您有 100 个订阅并从每个频道获取 5 个视频,这将导致 114 个 API 请求并使用大约 500 个配额单位(每日限制为 5000 万个单位)。如果不并行化 API 调用,运行大约需要 2 分钟。

不过,与使用活动相比,此方法确实有几个好处:

  • 您可以为具有公共帐户设置的任何用户执行此操作,而不仅仅是经过身份验证的用户,因此它在这方面的工作方式类似于 V2 API。
  • 它不会像 Youtube 主页那样随机丢失视频。

完整的 Python 实现可用:https://github.com/ali1234/ytsubs

没有完全相同的等价物,但您可以接近

youtube.activities.list(part="snippet", home=true)

然后过滤带有片段.type = 上传的那个

对于任何

有兴趣检索"今天"新上传的视频的人,例如它在/feed/subscriptions中是如何完成的,请使用"搜索API"(链接)。

在这种情况下,它需要 2 个 API。搜索 API 和订阅 API(链接)

  1. 使用订阅 API 获取通道 ID
  2. 对于每个频道 ID,请使用带有 channelIdpublishedAfterpublishedBefore 参数的搜索 ID。
  3. 然后过滤掉具有items.length == 0的结果。

那么现在,您只能过滤订阅频道上传的最新视频。


编辑:搜索API成本100配额。

调用此方法的配额开销为 100 个单位。

播放列表项 API 成本 3 个配额:

对此方法的调用除了指定资源部件的成本外,还具有 1 个单位的配额成本。

所以。。。从"频道 API"缓存上传的播放列表 ID 并使用播放列表要便宜得多。

或者,为了能够按搜索 API 等发布日期进行筛选,请使用具有publishedBeforepublishedAfter参数的活动 API。

相关内容

  • 没有找到相关文章

最新更新