【发布时间】:2014-10-29 17:31:59
【问题描述】:
我正在为 Youtube 使用 v3 Google API:
$url = 'https://www.googleapis.com/youtube/v3/search?part=id&channelId=' . $channelID . '&maxResults=50&order=date&key=' . $API_key;
我已经设置了一个脚本,它应该给我来自给定频道 ID 的所有视频。对于某些频道,我得到所有视频,对于一些缺少的视频(与直接在 Youtube 中显示的视频数量相比),对于更大的频道,我得到一个最大值。 488 个视频的结果,尽管还有更多。
pageToken 是一个奇怪的东西。例如,一个频道有 955 个视频。我得到 18 页,每页 50 个项目(即 900 个视频)。其中一些是播放列表,但如果我减去 23 个播放列表,我仍然有 877 个视频。如果我删除重复项,我只有 488 个结果! JSON 输出中的 totalResults 显示了 975 个结果!?
这是我的递归函数:
function fetchAllVideos($parsed_json){
$foundIds = array();
if($parsed_json != ''){
$foundIds = getVideoIds($parsed_json);
$nextPageToken = getNextPageToken($parsed_json);
$prevPageToken = getPrevPageToken($parsed_json);
if($nextPageToken != ''){
$new_parsed_json = getNextPage($nextPageToken);
$foundIds = array_merge($foundIds, fetchAllVideos($new_parsed_json));
}
if($prevPageToken != ''){
$new_parsed_json = getNextPage($prevPageToken);
$foundIds = array_merge($foundIds, fetchAllVideos($new_parsed_json));
}
}
return $foundIds;
}
我用$videoIds = fetchAllVideos($parsed_json); 调用它,$parsed_json 是我检索到的第一个 URL 的结果。你能在这里看到错误吗?
有人知道直接在 Youtube 上显示的视频数量是如何计算的吗?有没有人设法获得与 Youtube 中的数字相对应的完整列表?
【问题讨论】:
标签: php recursion youtube google-api