在访问YouTube用户上传的饲料超越START_INDEX项= 1000(Accessing an

2019-08-01 02:47发布

目前我正在试图拉约从YouTube用户上传的视频馈送数据。 该进料包含所有的由特定用户上传的视频,并且通过向请求从API被访问:

http://gdata.youtube.com/feeds/api/users/USERNAME/uploads

其中username是谁拥有饲料的YouTube用户名。

但是,试图访问这比1000个视频长饲料,当我遇到的问题。 由于每个请求API可返回50个项目,我通过使用饲料和MAX_LENGTH START_INDEX如下迭代:

http://gdata.youtube.com/feeds/api/users/USERNAME/uploads?start-index=1&max-results=50&orderby=published
http://gdata.youtube.com/feeds/api/users/USERNAME/uploads?start-index=51&max-results=50&orderby=published

依此类推,增加每次调用START_INDEX 50。 这完美的作品,直到:

http://gdata.youtube.com/feeds/api/users/USERNAME/uploads?start-index=1001&max-results=50&orderby=published

在这一点,我收到一个400错误,通知我说,“你不能要求超出项目1000” 这严重地混淆了我,因为我假定查询将只退还50个视频:在最新发布的顺序1001至51年。 通过说完看了文档 ,我发现了这一点:

在结果数量和访问的结果限制

...

对于任何给定的查询,您将无法即使有比这更给检索超过1000分的结果。 如果您尝试检索超过1,000结果的API将返回错误。 因此,如果你的起始索引查询参数设置为1001或更大的值的API会返回一个错误。 如果启动指数和最大结果参数的总和比1001更高它也将返回一个错误。

例如,如果你设置起始索引参数值1000,则必须在max-results参数值设置为1,如果设置起始索引参数值980,那么你必须设置max-results参数值21或更小。

我在有关如何访问一个普通用户的1001个最后上传视频和超越以一致的方式,因为他们不能只用最大结果被索引并启动索引损失。 有没有人有如何避免这个问题提出有益的建议? 我希望我已经清楚地概述的困难!

Answer 1:

让所有的视频为某个帐户支持的,但你需要确保你的上传的饲料请求逆着后端数据库,而不是搜索索引。 因为你,包括orderby=published在您要求的网址,你要对搜索索引。 搜索索引饲料被限制为1000个条目。

摆脱了orderby=published ,你会得到你所要寻找的数据。 在上传饲料的默认排序是反向时间反正。

这是一个特别容易犯的错误,我们有一个博客张贴了详细解释它:

http://apiblog.youtube.com/2012/03/keeping-things-fresh.html

这种做法的好处是,这是东西,将不再是该API的3版中的问题。



文章来源: Accessing an item beyond start_index=1000 in a YouTube user upload feed