我需要知道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(链接)
- 使用订阅 API 获取通道 ID
- 对于每个频道 ID,请使用带有
channelId
、publishedAfter
和publishedBefore
参数的搜索 ID。 - 然后过滤掉具有
items.length == 0
的结果。
那么现在,您只能过滤订阅频道上传的最新视频。
编辑:搜索API成本100配额。
调用此方法的配额开销为 100 个单位。
播放列表项 API 成本 3 个配额:
对此方法的调用除了指定资源部件的成本外,还具有 1 个单位的配额成本。
所以。。。从"频道 API"缓存上传的播放列表 ID 并使用播放列表要便宜得多。
或者,为了能够按搜索 API 等发布日期进行筛选,请使用具有publishedBefore
和publishedAfter
参数的活动 API。