需要帮助才能使用 YouTube 搜索 API 获得 100 多个结果

Posted

技术标签:

【中文标题】需要帮助才能使用 YouTube 搜索 API 获得 100 多个结果【英文标题】:Need help to get more than 100 results using YouTube search API 【发布时间】:2013-04-20 02:27:42 【问题描述】:

有没有什么方法可以使用 YouTube API 检索超过 100 个结果?

我可以使用这个查询字符串检索多达 100 个结果: https://gdata.youtube.com/feeds/api/videos?q=football&orderby=relevance&start-index=1&max-results=10&v=2

但是当我尝试 https://gdata.youtube.com/feeds/api/videos?q=football&orderby=relevance&start-index=101&max-results=10&v=2

我得到: http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/"C0YFQHg9fyp7I2A9WhBVGUk."'>tag:youtube.com ,2008:videos2013-04-26T01:51:51.667Zhttp://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#video'/>视频匹配:footballhttp://www.youtube.com/img/pic_youtubelogo_123x63.gifhttps://www. youtube.com'/>http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://gdata.youtube.com/feeds/api/videos?v=2'/>http://schemas.google.com/ g/2005#batch' type='application/atom+xml' href='https://gdata.youtube.com/feeds/api/videos/batch?v=2'/>https://gdata.youtube.com/feeds/api/videos?q=football&start-index=101&max-results= 10&orderby=relevance&v=2'/>https://gdata.youtube.com/feeds/api/videos?alt=atom-service&v=2'/>https://gdata.youtube.com/feeds/api/videos? q=football&start-index=91&max-results=10&orderby=relevance&v=2'/>YouTubehttp://www.youtube.com/http://gdata.youtube.com'>YouTube 数据 API10010110

据我了解,您可以使用 YouTube 搜索 API 获得 999 个结果。为什么这里限制为100?是否有解决方法让我获得超过 100 个结果?

谢谢!

【问题讨论】:

对于我正在做的任何搜索,我得到的 openSearch:totalResults 为 100。这没有意义,因为对于 youtube 中的相同搜索,有数千个视频。知道发生了什么吗? 对不起,我错误地将其视为其返回的 100 个视频。不是这样的。深入阅读 youtube api 的文档。 developers.google.com/youtube/2.0/… 这是一个错误,正在code.google.com/p/gdata-issues/issues/detail?id=4460进行跟踪 【参考方案1】:

我发现,如果您在对 API 的每次分页调用之间稍作停顿,它会返回 400 个结果,这意味着每页 1 次调用,每次调用之间间隔 2 秒。它适用于我的。如果您想获得更多,您必须关闭与 API 的连接并在一两分钟后重试。

【讨论】:

【参考方案2】:

分页存在缓存/升级问题。

检查这个答案here。

浏览提要的正确方法是发出第一个请求 对于没有 start-index 的提要,然后检查是否 有一个<link rel="next'...>,如果有,请使用该 URL 检索 Feed 的下一页。

【讨论】:

【参考方案3】:

我对同样的问题感到困惑 - start-index > 100 的视频搜索查询不返回任何结果:

http://gdata.youtube.com/feeds/api/videos?v=2&q=skateboarding+dog&max-results=50&start-index=101

起始索引

http://gdata.youtube.com/feeds/api/videos?v=2&q=skateboarding+dog&max-results=50&start-index=90

为您提供 10 个视频。

难道您不能访问搜索返回的前 100 个以外的结果吗?

【讨论】:

【参考方案4】:

你可以使用这个网址

https://www.googleapis.com/youtube/v3/search?q=football&part=id&key=YOUR_DEVELOPER_KEY&max-results=150

您可以轻松获得 100 多个结果

【讨论】:

【参考方案5】:

试试这个https://gdata.youtube.com/feeds/api/videos?q=football&orderby=relevance&v=2 它将采用默认大小。当您使用起始索引和大小时,您正在使用分页机制。我想这就是这里的问题。不幸的是,Google youtube API 每个查询最多只能支持 50 个视频。它在文档中。 999 个视频是视频源中可以包含的视频总数。不是它将查询的视频数量。不要误拿它,因为它会返回你所有的视频。您必须使用带有开始索引和大小的分页才能浏览所有视频。

【讨论】:

即使使用您发布的 URL 也只会为我返回 100 个结果...您看到的还不止这些吗? 元素的值是多少?如果您收到相同提要请求的不同结果,这有点奇怪...... 我猜你不能通过查询访问超过 50,因为现在我将最大结果设置为 100 时出现异常。并且它在 youtube 的 api 文档中最大大小为 50 .我想没有别的办法了 这里有类似情况***.com/questions/8355848/… 我猜上周发生了一些变化。直到上周中旬,它都运行良好。【参考方案6】:

我无法确定内部是否发生了某些变化,现在将 totalResults 的上限限制为 100,但这似乎是当今普遍存在的问题。但是,如果您尝试使用 API 的 v3,这将不是问题:例如,此查询:

https://www.googleapis.com/youtube/v3/search?q=football&part=id&key=YOUR_DEVELOPER_KEY

会给你很多很多的总结果。使用 v3,您可以将 maxResults 参数设置为每个响应返回最多 50 个视频,然后通过将 pageToken 参数设置为给定响应的“nextPageToken”属性来对响应进行分页。

【讨论】:

以上是关于需要帮助才能使用 YouTube 搜索 API 获得 100 多个结果的主要内容,如果未能解决你的问题,请参考以下文章

YouTube 数据 API v3 评论列表

在搜索Youtube api后,如何获取Youtube视频[关闭]

Youtube API - 我们需要做啥才能将数据存储超过 30 天?

用于频道列表的 YouTube Api

如何在 Android 中使用 youtube 数据 API 搜索视频

本周搜索新的音乐视频 youtube api