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

Posted

技术标签:

【中文标题】检索 YouTube v3 API 中的所有新订阅视频【英文标题】:Retrieving all the new subscription videos in YouTube v3 API 【发布时间】:2013-11-07 13:54:27 【问题描述】:

我需要知道 YouTube Data API v3 中与此 v2 请求相同的请求,以检索所有新订阅视频。

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

我还没有见过任何像v2版本的reques一样简单干净的请求

【问题讨论】:

【参考方案1】:

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

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

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

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

与使用活动相比,这种方法确实有几个好处:

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

提供完整的 Python 实现:https://github.com/ali1234/ytsubs

【讨论】:

您也可以使用search 来避免获取会导致请求减少的播放列表和播放列表项。但是,这种方法会导致配额消耗量激增。 Alistair 的方法在这个时候似乎仍然是最好的。 这一切都是因为 Google 弃用了 activities 列表 YouTube API 中的 home 参数。 也许这可行:1) 通过 yt api 获取用户订阅 2) 获取所有频道 ID 并提出请求:youtube.com/feeds/videos.xml?channel_id= 3) 按日期订购 4) ???? 5) $$$ 利润 $$$【参考方案2】:

没有完全等价的,但你可以接近

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

然后用snippet.type = 上传过滤那个

【讨论】:

是否有过滤请求本身的 sn-p.type = upload 的方法? 正在进行更新。你可以从这里追踪它:code.google.com/p/gdata-issues/issues/detail?id=3946 非常感谢!我会遵守的。 此解决方案似乎无法检索所有最后上传的视频(我错过了其中一些) home 现已弃用。【参考方案3】:

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

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

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

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


编辑:搜索 API 需要 100 个配额。:

调用此方法的配额成本为 100 个单位。

播放列表项 API 需要 3 个配额:

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

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

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

【讨论】:

以上是关于检索 YouTube v3 API 中的所有新订阅视频的主要内容,如果未能解决你的问题,请参考以下文章

使用新的 YouTube API v3 解析 YouTube 订阅者数量

使用新的 YouTube API v3 解析 YouTube 订阅者数量

Youtube api v3 无法从频道中检索所有视频

如何在 YouTube API v3 上检索“频道中的频道”

使用 YouTube API v3 检索播放列表中的项目数

youtube api v3 从比视频更新的频道中获取所有视频