Я пытаюсь понять, как получить данные YouTube из API с помощью PHP / CRUL, чтобы вывести список всех списков воспроизведения YouTube в идентификаторе канала, а затем получить все видеоданные в каждом списке воспроизведения.
В плейлисте содержится более 50 плейлистов, а в некоторых — более 50 видео. Я просто не могу работать, чтобы использовать nextPageToken. Как мне поступить, есть ли какие-то классы, которые я могу использовать?
Спасибо за любой совет.
function grabPLAYLISTS($pageToken){
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://www.googleapis.com/youtube/v3/playlists?part=snippet,contentDetails&channelId=&maxResults=10&key=&pageToken=".$pageToken,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Cache-Control: no-cache"),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
return json_decode($response, true);
}
function grabITEMS($therequestedlist, $pageToken){
$curl2 = curl_init();
curl_setopt_array($curl2, array(
CURLOPT_URL => "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet,contentDetails&key=&playlistId=".$therequestedlist."&maxResults=10&pageToken=".$pageToken,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Cache-Control: no-cache"),
));
$response2 = curl_exec($curl2);
$err2 = curl_error($curl2);
curl_close($curl2);
return json_decode($response2, true);
}
function grabVIDEO($videoID){
$curl3 = curl_init();
curl_setopt_array($curl3, array(
CURLOPT_URL => "https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails,statistics&id=".$videoID."&key=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Cache-Control: no-cache"),
));
$response3 = curl_exec($curl3);
$err3 = curl_error($curl3);
curl_close($curl3);
return json_decode($response3, true);
}
$playlistdata = grabPLAYLISTS();
$counter_playlistdata = count($playlistdata['items']) -1;
$totalResults = $playlistdata['pageInfo']['totalResults'];
$resultsPerPage = $playlistdata['pageInfo']['resultsPerPage'];
for ($x = 0; $x <= $counter_playlistdata; $x++) {
$therequestedlist = $playlistdata['items'][$x]['id'];
echo "list ".$x."-".$therequestedlist."<br>";
}
Задача ещё не решена.
Других решений пока нет …