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

时间:2013-10-28 17:02:47

标签: youtube-api

我需要知道YouTube Data API v3中的等效请求,因为此v2请求检索所有新的订阅视频。

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

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

3 个答案:

答案 0 :(得分:21)

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

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

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

如果您有100个订阅并从每个频道获取5个视频,则会产生114个API请求并使用大约500个配额单位(每日限制为5000万个单位)。如果您没有并行化API调用,也需要大约2分钟才能运行。

这种方法确实比使用活动有一些好处:

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

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

答案 1 :(得分:7)

没有确切的等价物,但你可以接近

  

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

然后使用snippet.type = upload

过滤一个

答案 2 :(得分:0)

对于有兴趣在“今天”检索新上传的视频(例如在/feed/subscriptions中的操作方式)的人,请使用“搜索API”(link)。

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

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

然后,您只能过滤已订阅频道上传的最新视频。


编辑:Search API的配额为100。

  

对此方法的调用具有100个单位的配额成本。

播放列表项API的配额为3:

  

对该方法的调用除指定资源部分的成本外,配额成本为1个单位。

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

或者要能够按搜索API之类的发布日期进行过滤,请使用带有publishedBeforepublishedAfter参数的活动API。