Я пытаюсь подсчитать количество подписчиков для определенного канала YouTube. Я ссылался на некоторые ссылки на Stackoverflow, а также на внешние сайты, на которые ссылались такие ссылки. Почти все ссылки предложили мне использовать youtube gdata api и вытащить счет из подписчика, но следующий код
$data = file_get_contents("http://gdata.youtube.com/feeds/api/users/Tollywood/playlists"); $xml = simplexml_load_string($data);
print_r ($ XML);
не возвращает такой абонентский счет. Есть ли другой способ подсчета подписчиков или я делаю что-то неправильно?
Попробуй это 😉
<?php $data = file_get_contents('http://gdata.youtube.com/feeds/api/users/Tollywood'); $xml = new SimpleXMLElement($data); $stats_data = (array)$xml->children('yt', true)->statistics->attributes(); $stats_data = $stats_data['@attributes']; /********* OR **********/ $data = file_get_contents('http://gdata.youtube.com/feeds/api/users/Tollywood?alt=json'); $data = json_decode($data, true); $stats_data = $data['entry']['yt$statistics']; /**********************************************************/ echo 'lastWebAccess = '.$stats_data['lastWebAccess'].'<br />'; echo 'subscriberCount = '.$stats_data['subscriberCount'].'<br />'; echo 'videoWatchCount = '.$stats_data['videoWatchCount'].'<br />'; echo 'viewCount = '.$stats_data['viewCount'].'<br />'; echo 'totalUploadViews = '.$stats_data['totalUploadViews'].'<br />'; ?>
API YouTube версии 2.0 устарел. Вот как это сделать с 3.0. OAuth не требуется.
1) Войдите в аккаунт Google и перейдите на страницу https://console.developers.google.com/ . Возможно, вам придется начать новый проект.
2) Перейдите к APIs & auth
и перейдите в Public API Access -> Создать новый ключ
3) Выберите нужный вариант (я использовал «приложения для браузера»). Это даст вам ключ API.
4) Перейдите на свой канал на YouTube и посмотрите URL. Идентификатор канала находится здесь: https://www.youtube.com/channel/YOUR_CHANNEL_ID
5) Используйте ключ API и идентификатор канала, чтобы получить результат с помощью этого запроса: https://www.googleapis.com/youtube/v3/channels?part=statistics&id=YOUR_CHANNEL_ID&key=YOUR_API_KEY
Большой успех!
Документация на самом деле довольно хорошая, но ее много. Вот несколько ключевых ссылок:
Информационная документация по каналу: https://developers.google.com/youtube/v3/sample_requests
Страница «Попробовать»: https://developers.google.com/youtube/v3/docs/subscriptions/list#try-it
Я мог бы сделать это с регулярным выражением для моей страницы, не уверен, что это сработает для вас или нет. проверьте следующие коды:
<?php $channel = 'http://youtube.com/user/YOURUSERNAME/'; $t = file_get_contents($channel); $pattern = '/yt-uix-tooltip" title="(.*)" tabindex/'; preg_match($pattern, $t, $matches, PREG_OFFSET_CAPTURE); echo $matches[1][0];
<?php //this code was written by Abdu ElRhoul //If you have any questions please contact me at info@oklahomies.com //My website is http://Oklahomies.com set_time_limit(0); function retrieveContent($url){ $file = fopen($url,"rb"); if (!$file) return ""; while (feof ($file)===false) { $line = fgets ($file, 1024); $salida .= $line; } fclose($file); return $salida; } { $content = retrieveContent("https://www.youtube.com/user/rhoula/about"); //replace rhoula with the channel name $start = strpos($content,'<span class="about-stat"><b>'); $end = strpos($content,'</b>',$start+1); $output = substr($content,$start,$end-$start); echo "Number of Subscribers = $output"; } ?>