我使用YouTube的谷歌V3 API:获取所有YouTube视频(有些视频丢失)
$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中的号码相对应的完整列表?
我给你upvotes,但你应该张贴最后的反正。你不知道什么时候对某人有用。 – Random 2015-02-24 20:56:31
@Random:现在我添加了我使用的脚本。 – testing 2015-02-24 22:10:43