首页 > 解决方案 > 通过 Youtube Data Api 获取频道订阅列表

问题描述

有什么方法可以按最近订阅的顺序排列 Youtube 频道的订阅列表?

youtube
       .subscriptions()
       .list("snippet")
       .setOrder("")// relevance, unread, alphabetical
       .setMaxResults((long) 1000) // it is not affecting, the max limit is 50
       .setMine(true)
       .execute();

根据文档,我一次最多只能获得 50 件商品,而且我只有三个订单类型参数相关性未读字母顺序

但我需要到达我最后订阅的频道。如果有人帮助我处理这个问题,我将不胜感激。

提前致谢!

标签: androidyoutubeyoutube-data-api

解决方案


根据文档,您可以使用以下参数:

我最近的订阅者(布尔值)

此参数只能在正确授权的请求中使用。将此参数的值设置为 true 以按时间倒序(最新的优先)检索经过身份验证的用户的订阅者的订阅源。

请注意,此参数仅支持检索经过身份验证的用户频道的最近 1000 个订阅者。要检索完整的订阅者列表,请使用 mySubscribers 参数。该参数不按特定顺序返回订阅者,不限制可以检索的订阅者数量。

那就是:.setMyRecentSubscribers(true)在上面代码的设置器序列中插入类似的东西。(您也可以删除setChannelIdsetter 调用,因为通过要求您被授权调用此端点,API 已经知道您的调用所指的通道。)

另请注意,参数的maxResults最大值为50。在上面的设置器序列中只接收最近的订阅.setMaxResults(1)者。


如果您想获取所有订阅的列表,则有以下参数:

我的(布尔值)

此参数只能在经过适当授权的请求中使用。将此参数的值设置为 true 以检索经过身份验证的用户订阅的提要。

在你的二传手序列中有.setMine(true)(没有)。.setChannelId

您将不得不重复调用 API 的端点来获取您的所有订阅,因为该端点提供了分页的结果集。获得所有这些订阅后,按 . 对它们进行排序snippet.publishedAt

如果您只想获取要订阅的最新频道,而不是排序算法,那么在同一属性上使用 max 算法(O(n)而不是)就足够了。O(n log n)

有关如何在代码中实现分页的示例,请查看Google 本身提供的一些示例代码。


推荐阅读