我使用YouTube API请求我将maxResults设置为50的一组视频,并在返回的对象中获取以下信息:[totalResults] => 271 [resultsPerPage] => 50.一切都很好,但对象只有3个视频。当我使用一个搜索结果更多的结果时,它确实显示了更多,但仍然不是它应该显示的50,只有当返回了很多视频(比如1000+)然后我在对象中得到50,这里发生了什么? / p>
这是我的请求代码:
$searchResponse = $youtube->search->listSearch('id,snippet', array(
'q' => "Let's Play The Legend of Zelda",
'maxResults' => 50,
'type' => 'video',
'videoEmbeddable' => 'true',
'publishedAfter' => date("Y-m-d\TH:i:sP",strtotime('-2 days')),
'videoDuration' => 'short',
'videoDefinition' => 'high',
'order' => 'viewCount',
));
这是我的归档对象:
Array
(
...
[pageInfo] => Array
(
[totalResults] => 972
[resultsPerPage] => 50
)
[items] => Array
(
[0] => Array
...
[7] => Array
)
)
你可以看到它只有8个视频,而它有972个结果,应该给我50个。
答案 0 :(得分:4)
这是YouTube API的问题。 totalResults
值可能返回不准确的数字,不应用于检查响应中有多少结果。
遗憾的是,这是一个已知问题,一般来说,我建议将totalResults视为一个非常粗略的指南,并确保不围绕它构建任何分页逻辑。响应中是否存在nextPageToken应该是唯一可以指示是否有其他可用结果的内容。
来源:https://code.google.com/p/gdata-issues/issues/detail?id=6125&can=1
在这种情况下,您可以使用count()
功能来检查您有多少项目。