Решение:
$curl = curl_init("https://youtube.googleapis.com/youtube/v3/channels?mine=true&key=" . Cms::setup('google_key'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); // Disables SSL verification
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Accept: application/json',
'Authorization: Bearer ' . $data['access_token']
));
$user = curl_exec($curl);
$user = json_decode($user, true);
А когда есть ID канала можно получать дальше различную информацию, отправляя запросы:
$info = file_get_contents('https://www.googleapis.com/youtube/v3/channels?part=statistics&id=' . Cms::Input($channel) . '&key=' . Cms::setup('googlecloud'));
$info = json_decode($info, true);
$info = file_get_contents('https://www.googleapis.com/youtube/v3/channels?part=brandingSettings&id=' . Cms::Input($channel) . '&key=' . Cms::setup('googlecloud'));
$info = json_decode($info, true);
$info = file_get_contents('https://www.googleapis.com/youtube/v3/channels?part=snippet&id=' . Cms::Input($channel) . '&key=' . Cms::setup('googlecloud'));
$info = json_decode($info, true);
А так получаю данные о последнем видео на канале:
$xml = simplexml_load_file(sprintf('https://www.youtube.com/feeds/videos.xml?channel_id=%s', $channel));
if (!empty($xml->entry[0]->children('yt', true)->videoId[0])) {
$date = $xml->entry[0]->published;
$name = $xml->entry[0]->title;
$id = $xml->entry[0]->children('yt', true)->videoId[0];
}