Для вывода списка видеозаписей из канала или плейлиста YouTube на сайте можно воспользоваться этим полностью рабочим решением на PHP. С помощью этой функции можно получить все необходимые данные видеозаписей: название, изображение и идентификатор видео.
Вам понадобится идентификатор канала или плейлиста. Найти их можно в адресной строке:
ID канала будем указывать при вызове функции getYoutubePlaylistDataXml('Ваш_ID_канала');
И Google API key. Получаем следующим образом:
Для доступа к консоли API Google нужен аккаунт Google . Создаем или переходим к следующему пункту.
Нажимаем «Create Project» и указываем имя. Соглашаемся с правилами и нажимаем кнопку «Create».
В разделе «Boost your app with a Google API» активируем кнопку «Enable an API».
И выбираем «YouTube Data API» для работы с API YouTube.
Нажимаем на кнопку «Enable API».
В меню слева выбираем API & auth → Credentials. И нажимаем кнопку «Create new Key».
При необходимости указываем домен на котором будет использоваться ключ и нажимаем «Create».
Полученный ключ указываем в скрипте в переменной $api_key.
<?php
/**
* Получить список последних видео заданного плейлиста
*
* @param string $ytlist идентификатор канала или плейлиста
* @param int $cnt по сколько позиций обрабатывать (не всегда нужно содержимое всего плейлиста)
* @param int $cache_life время жизни кеша в секундах (чтобы не получить бан IP за рилтайм запросы)
* @return array список найденных видео, не более $cnt штук
*/
function getYoutubePlaylistDataXml($ytlist, $cnt = 5, $cache_life = 3600) {
# файл, содержащий копию ленты
$cache_file = dirname(__FILE__) . DIRECTORY_SEPARATOR . $ytlist . '.json';
# Ключ для запросов
$api_key = 'ВАШ-API-KEY';
# специальный адрес, отвечающий за выдачу фида
$url = 'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet'
. '&playlistId=' . $ytlist
. '&maxResults=' . $cnt
. '&key=' . $api_key;
# если кеш устарел...
if (time() - @filemtime($cache_file) >= $cache_life) {
# ...пытаемся обновить его
$buf = file_get_contents($url);
# в случае успеха запишем в файл обновлённые данные
# проверка на пустоту нужна для того, чтобы не запороть кеш при ошибке
if ($buf) file_put_contents($cache_file, $buf);
}
# если фид получить не удалось...
if (empty($buf)) {
# ...просто берём содержимое из кеша
$buf = file_get_contents($cache_file);
}
# декодируем JSON данные
$json = json_decode($buf, 1);
$arr = array();
# если данных нет — на выход
if (empty($json['items'])) return $arr;
# перебор доступных значений
foreach ($json['items'] as $v) {
$t = array(
'title' => $v['snippet']['title'], # название
'desc' => $v['snippet']['description'], # описание
'url' => $v['snippet']['resourceId']['videoId'], # адрес
);
# изображения
if (isset($v['snippet']['thumbnails'])) {
$t['imgs']['all'] = array();
foreach ($v['snippet']['thumbnails'] as $name => $item) {
$t['imgs']['all'][] = $item['url'];
$wh = $item['width'] . 'x' . $item['height'];
$t['imgs'][$wh][0] = $item['url'];
}
}
$arr[] = $t;
}
return $arr;
}
Если все верно, то при вызове функции getYoutubePlaylistDataXml('Ваш_ID_канала'); получаем массив с данными нужного канала или плейлиста.
Кейс внедрения MES / MOM системы в фармацевтической отрасли смотрите здесь
Если вам понравилась статья, вы можете отблагодарить автора любой суммой, какую сочтете для себя приемлемой:
Поделиться:
Остались вопросы по статье? Задайте их прямо сейчас!
Что если сообщения с сайта будут приходить не только на ваш e-mail, но и моментально в мессенджер телеграм. Удобно же! Нужно было реализовать такой функционал, ну как и всегда все оказалось довольно просто. Так же стояла задача отправлять сообщения не Читать далее
Постоянно приходится пользоваться этой заготовкой. Вы можете модернизировать ее под любые нужды, будь то форма обратной связи, форма обратного звонка или заказ какой-либо услуги или товара. Поэтому я не буду украшать ее стилями, применять классы Bootstrap и различные скрипты, как Читать далее
Довольно часто приходится сталкиваться с выводом названий месяцев и дней недели по-русски. При чем в различных вариантах, к примеру с полным названием или сокращенным, с большой буквы или с маленькой. Можно воспользоваться одним из этих 2 вариантов для вывода даты Читать далее
Рабочий пример PHP парсера, который получает погоду с Яндекса по ID города. Скрипт сохраняет данные в файле кеша на сайте, и обновляет его раз в час. Так же расскажу как выводить на сайте собственные иконки погоды вместо стандартных от Яндекса. Читать далее
Для вывода списка видеозаписей из канала или плейлиста YouTube на сайте можно воспользоваться этим полностью рабочим решением на PHP. С помощью этой функции можно получить все необходимые данные видеозаписей: название, изображение и идентификатор видео. Вам понадобится идентификатор канала или плейлиста. Читать далее
Парсер получает курсы доллара и евро с сайта Центробанка каждые 24 часа и записывает их в файл кеша /log/course.txt Скрипт полностью готов к работе и не требует каких-либо дополнительных настроек. <? function loadCourse(){ define("tsCourse","15:00:00"); # Время смены курса центральным банком Читать далее
Пример календаря на PHP и Ajax с переключением месяцев. Можно использовать как заготовку для решения любых задач. Я использовал его для создания плагина календаря мероприятий на WordPress. Скрипт использует процедурный подход, но имеет разделенную структуру с шаблоном , что довольно Читать далее
Добавить комментарий