Intereting Posts
Попытка получить свойство не-объекта в PHP JSON Добавьте <a> к каждому слову внутри <h3> Как я могу определить уникальный URL-адрес для пользователя без использования их идентификатора? Присвоение значений, напечатанных PHP CLI, переменными оболочки Образец нулевого объекта с ярко выраженными отношениями Требования не могут быть разрешены к устанавливаемому набору пакетов Как «перезагрузить» активную запись CodeIgniter для последовательных запросов? php образуют несколько переключателей Получите дату недели с PHP Разрешение не более 2 строк в текстовой области Редактировать и обрезать загруженное изображение Каков правильный способ настройки и использования php-resque? Как преобразовать RTF в PDF с моей веб-страницы PHP с помощью OpenOffice? Php mysql pdo query: заполнить переменную с результатом запроса Как проверить, является ли сеанс PHP пустым?

Количество подписчиков канала Youtube

Я пытаюсь подсчитать количество подписчиков для определенного канала 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"; } ?>