@CapitanFreeloader

Как получить более 50 видео при помощи youtube api v3?

Столкнулся с ютубовским апи v3
Нужно получить ~1000 роликов по запросу. Сейчас это делается не при помощи api ютуба.
Нашел в доках параметр pagetoken. Но не могу понять как его использовать и где брать. Информации в гугле тоже внятной нет ни какой. Кто может подсказать адекватно?
Сейчас получается такая строка:
https://www.googleapis.com/youtube/v3/search?part=snippet&q=$keyword&type=video&maxResults=50&key=$api_token

Получаю курлом вот так
function send_req($url) 
	{
	   $ch = curl_init();
		curl_setopt($ch, CURLOPT_USERAGENT,				"Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1");
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 		FALSE);
		curl_setopt($ch, CURLOPT_HEADER,				false);
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION,		true);
		curl_setopt($ch, CURLOPT_URL,					$url);
		curl_setopt($ch, CURLOPT_REFERER,				$url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER,		TRUE);
		$out = curl_exec($ch);
		curl_close($ch);
		return $out;
	}

Подскажите как получить более чем 50 роликов? Возможно не через pageToken можно?
  • Вопрос задан
  • 1594 просмотра
Решения вопроса 2
@CapitanFreeloader Автор вопроса
Отвечаю сам себе:
function send_req($url) 
	{
	   $ch = curl_init();
		curl_setopt($ch, CURLOPT_USERAGENT,				"Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1");
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 		FALSE);
		curl_setopt($ch, CURLOPT_HEADER,				false);
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION,		true);
		curl_setopt($ch, CURLOPT_URL,					$url);
		curl_setopt($ch, CURLOPT_REFERER,				$url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER,		TRUE);
		$out = curl_exec($ch);
		curl_close($ch);
		return $out;
	}

$url = "https://www.googleapis.com/youtube/v3/search?part=snippet&q=$keyword&type=video&maxResults=50&key=$api_token";
$res = json_decode(send_req($url));
echo "<pre>";
print_r($res);
echo "<hr>";

$pagetoken = $res->nextPageToken;

$url = "https://www.googleapis.com/youtube/v3/search?part=snippet&q=$keyword&type=video&maxResults=50&pageToken=$pagetoken&key=$api_token";
$res = json_decode(send_req($url));
print_r($res);
Ответ написан
xpert13
@xpert13
Full Stack Developer
Судя по документации в ответе на первый запрос должен присутствовать nextPageToken, который нужно подставлять как значение для параметра pageToken, чтобы получить результат следующей страницы.

По всей видимости сделано для того, чтобы вы не могли парсить выдачу в несколько потоков.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
lokki00003
@lokki00003
Web developer
Тут лишнее.
Лишнее подключать библиотеку curl

Работа с api доступна через простой get_contents
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы