0

我将 youtube search api 用于我的 iphone 应用程序。我一次请求 25 条记录。

     https://gdata.youtube.com/feeds/api/videos?q=%s&start-index=%d&max-results=25&v=2 

我想检测到查询捕获的最终记录。

例如:-认为“阿凡达电影”有 135 个结果,在第 135 条记录处我想表明没有更多的搜索结果。

我在视频列表末尾使用“更多”按钮。我想禁用更多按钮。

4

2 回答 2

1

如果您使用 Data API v3,当您“搜索”时,您将获得“pageInfo.totalResults”。你可以检查一下,你可以检查'nextPageToken'是否为空,所以这是最后一页。

' https://developers.google.com/youtube/v3/docs/search/list#response '

于 2013-02-06T15:51:40.723 回答
1

对于版本 2 API,您可以通过 2 种方式检测最后一项:

1.

<openSearch:totalResults>108</openSearch:totalResults>

如果您知道总数,则可以计算最后一项。

2.下一个链接标签是否返回,如<link rel='next' type='application/atom+xml' href='https://gdata.youtube.com/feeds/api/videos?q=rawangboy&amp;start-index=108&amp;max-results=1&amp;restriction=US&amp;safeSearch=strict&amp;v=2'/>

但是,您需要safeSearch参数以确保<openSearch:totalResults>它与您的最后一个项目索引等效,例如https://gdata.youtube.com/feeds/api/videos?q=rawangboy&start-index=108&max-results=1&v=2&prettyprint=True&safeSearch=none

或者更好的是,您可以按国家/地区/IP 进行限制,例如https://gdata.youtube.com/feeds/api/videos?q=rawangboy&start-index=108&max-results=1&v=2&prettyprint=True&safeSearch=strict&restriction=US

如果你没有放 safeSearch,<openSearch:totalResults>可能不正确,如这个截图所示(start-index 107 不可用,即使总数为 108) 截图

搜索查询不允许超过 1000 个的结果。如本文所述 https://developers.google.com/youtube/2.0/reference#Limits_on_Retrieving_Results ‌​。

于 2013-02-06T17:42:48.753 回答