Я использую v3 Google API для Youtube:Получить все видео YouTube из канала (некоторое видео отсутствует)
$url = 'https://www.googleapis.com/youtube/v3/search?part=id&channelId=' . $channelID . '&maxResults=50&order=date&key=' . $API_key;
Я создал скрипт, который должен дать мне все видео из данных идентификатор канала. Для некоторых каналов я получаю все видеоролики, некоторые из них отсутствуют (по сравнению с количеством видеороликов, показанных непосредственно на Youtube), а для большего канала я получаю максимум. результат из 488 видео, несмотря на то, что их больше.
pageToken
странно. Например, канал имеет 955 видео. Я получаю 18 страниц с 50 пунктами на страницу (это будет 900 видео). Некоторые из них - плейлисты, но если я вычту 23 плейлиста, у меня все еще есть 877 видео. Если я удалю дубликаты, у меня будет только 488 результатов! totalResults
на выходе JSON показывает мне 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?
Я дал вам ножки, но в любом случае вы должны опубликовать окончательный вариант. Вы не знаете, когда это может быть полезно кому-то. – Random
@Random: Теперь я добавил скрипт, который использовал. – testing