Youtube API v3返回的请求结果少于请求的结果

时间:2014-03-26 22:14:35

标签: php api youtube

我使用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个。

1 个答案:

答案 0 :(得分:4)

这是YouTube API的问题。 totalResults值可能返回不准确的数字,不应用于检查响应中有多少结果。

问题 - API成员回复

  

遗憾的是,这是一个已知问题,一般来说,我建议将totalResults视为一个非常粗略的指南,并确保不围绕它构建任何分页逻辑。响应中是否存在nextPageToken应该是唯一可以指示是否有其他可用结果的内容。

来源:https://code.google.com/p/gdata-issues/issues/detail?id=6125&can=1

在这种情况下,您可以使用count()功能来检查您有多少项目。