Офис НП AMWAY в Ярославле
Купить продукцию Амвей в Ярославле
На карте Купить AMWAY в ЯрославлеПриобрести высококачественную продукцию Амвей в Ярославле, получить консультации по бизнесу, заказать продукцию или получить заказ:
Адрес: улица Валентины Терешковой, дом 1 (Вход со двора)
Телефон: +7 (920) 112-00-91
Email: matyxho@mail.ru
Сайт: https://www.amway.ru/user/lebedem
Визитка: http://yar.meweb.ru
Иерархия статей
Статьи » Программирование » Вывод информации о видео с YouTube с использованием Data API v2
Сниппет
Делал один небольшой сайтег, и была поставлена задача: сделать вывод видео с YouTube. В общем, ничего сложного, с задачей справился быстро: админка, плеер и т.д. Однако, я посещал некоторые ресурсы, на которых видел вывод информации о видео: рейтинг, количество просмотров и так далее. Теперь- подробнее.
Вывод информации о видео с YouTube с использованием Data API v2
Опубликовал  Pisatel Pisatel Добавлено  07-02-2013 17:22 07 Февраль 2013 17:22:22 7596  Прочтений 7596 Прочтений
Обновлено: 27-05-2015 09:45 Обновлено: 27 мая 2015 09:45:45  printer
Итак, поехали. Нас сейчас не интересует возможность заливки видео прямо с твоего сайта на сервис youtube, хотя такую возможность они предоставляют через API. Сейчас все будет немного проще: нам нужна лишь информация, поэтому мы будем банально их грабить через их любезно предоставленный сервис. Поехали.
Для начала небольшая функция для склонения наших слов, таких, как Минута => минут, секунда => секунд и так далее. Вот она:
Код: PHP
    function getWord($number, $suffix){
$keys = array(2, 0, 1, 1, 1, 2);
$modern = $number % 100;
$suffix_key = ($modern > 7 && $modern < 20) ? 2 : $keys[min($modern % 10, 5)];
return $suffix[$suffix_key];
}



Далее, с помощью этой функции, создаем массив нам на будущее:
Код: PHP
    $arraymin = array('минута', 'минуты', 'минут');
$arraysec = array('секунда', 'секунды', 'секунд');
$arraygolos = array('голос', 'голоса', 'голосов');



Собственно, подготовительные работы закончились. Далее идет само ограбление:
Код: PHP
//информация о файле

$api = 'http://gdata.youtube.com/feeds/api/videos/ID_ВАШЕГО_ВИДЕО?v=2';
$youtube = simplexml_load_file($api);
$media = $youtube->children('http://search.yahoo.com/mrss/');
//выводим кол-во просмотров

$yt = $youtube->children('http://gdata.youtube.com/schemas/2007');
$attrs = $yt->statistics->attributes();
$viewCount = $attrs['viewCount'];

// продолжительность

$yt = $media -> children('http://gdata.youtube.com/schemas/2007');
$attrs = $yt -> duration -> attributes();
$length_min = floor($attrs['seconds'] / 60);
$length_sec = $attrs['seconds'] % 60;
$min = getWord($length_min, $arraymin);
$sec = getWord($length_sec, $arraysec);

//картинка

$attrs = $media->group->thumbnail[0]->attributes();
$thumbnail_url = $attrs['url'];

//рейтинг gd:rating

$gd = $youtube->children('http://schemas.google.com/g/2005');
if ($gd->rating){
$attrs = $gd->rating->attributes();
$rating = $attrs['average'];
$numRaters = $attrs['numRaters'];
} else {
$rating = 0;
$numRaters = 0;
}
$golos = getWord($numRaters, $arraygolos);
$yt1 = $youtube->children('http://gdata.youtube.com/schemas/2007');
if($yt1->rating && $yt1->rating[0]->attributes()){
$attrs1 = $yt1->rating[0]->attributes();
$dislikes = strval($attrs1['numDislikes']);
$likes = strval($attrs1['numLikes']);
} else {
$dislikes = 0;
$likes = 0; }



Собственно, вот и все:-) Мы уже все украли с youtube, что нам нужно. А это: превью видео( скриншот), продолжительность, количество просмотров, голоса ( всего и в частности +/- ). Можно еще брать заголовок и описание, но у меня данной задачи не стояло, поэтому ты уж, уважаемый читатель, как-нибудь сам.
Что ж, теперь сам вывод этой информации:
Код: PHP
    echo "<div><img width='200px' height='150px' style='float:left; margin:8px 12px 8px 8px;' src='".$thumbnail_url."' alt=''>
<ul>
<li>Просмотров: <strong>".number_format($viewCount,0, '.', ' ')."</strong></li>
<li>Длительность: <strong>$length_min $min $length_sec $sec</strong></li>
<li>Рейтинг: <strong>".number_format($rating, 2, ',', ' ')." ( $numRaters $golos ) <span style='color:green;'>".$likes."</span> / <span style='color:red;'>".$dislikes."</span></strong></li>
</ul>
</div>";



Вот, собственно, и все, чем хотел поделиться с тобой. Надеюсь, кому-то это поможет.
Обсуждение данного шедевра на форуме.

Обновление


В связи с тем, что сервис YouTube прекратил поддержку Data API v2 данная статья потеряла актуальность. Рекомендую всем обновить свои веб–приложения, подогнав их под стандарт YouTube Data API v3. Как это сделать — читайте в статье >>> PHP: вывод информации о видео с сервиса YouTube при помощи Data API v3.
Понравилась статья?
Метки для данной статьи
Похожие статьи
Поделиться:   
Последние активные темы форума
  Темы Просмотров Ответов Последние сообщения
folder Вопрос по переделке bb-кода
PHP, MySQL
22377 5 Pisatel
26. мая 2017
folder Вопросы по Ajax форме обратной связи
CMS PHP Fusion
68818 48 Ditrin
19. февраля 2017
folder BBCode YouTube Video Colorbox mod
CMS PHP Fusion
15395 2 Pisatel
10. декабря 2016
folder Как лучше создать собственную страницу?
CMS PHP Fusion
17943 17 Pisatel
11. мая 2016
folder Небольшие вопросы по скриптам магазина и катало...
PHP, MySQL
145299 80 Pisatel
11. января 2016
folder BBCode Code mod
CMS PHP Fusion
14447 0 Pisatel
31. августа 2015
folder Ajax Like Dislike Article Panel
CMS PHP Fusion
22606 16 Pisatel
07. июля 2015
folder Хлебные крошки / BreadCrumbs SEO Panel
CMS PHP Fusion
26325 17 Pisatel
04. июля 2015
folder Abbr Description BBCode
CMS PHP Fusion
7676 0 Pisatel
15. июня 2015
folder Плагин Email рассылки Mail To All by Pisatel
CMS PHP Fusion
37111 32 Pisatel
26. апреля 2015
folder Подозрительный трафик и прочие страшилки
Всякая хрень
11834 2 Ditrin
23. апреля 2015
folder Мод Newsletter - рассылка писем пользователям с...
CMS PHP Fusion
31076 13 Pisatel
10. апреля 2015
folder Мод отправки писем PHPMailer для PHP-Fusion
CMS PHP Fusion
128873 113 Ditrin
06. апреля 2015
folder Появление неизвестного файла subscriptions.php
CMS PHP Fusion
8865 2 Pisatel
06. апреля 2015
folder Autoban on IP
CMS PHP Fusion
23224 13 Pisatel
03. апреля 2015