Как встроить видео с YouTube канала на сайт

Как встроить видео с YouTube канала на сайт

17 сентября 2019 PHP

Для вывода списка видеозаписей из канала или плейлиста 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_канала'); получаем массив с данными нужного канала или плейлиста.

Если вам понравилась статья, вы можете отблагодарить автора любой суммой, какую сочтете для себя приемлемой:
Остались вопросы по статье? Задайте их прямо сейчас!
Похожие записи
Простая интеграция Яндекс.Кассы на PHP

На сегодняшний день Яндекс.Касса - это один из самых популярных мерчантов для подключения оплаты на любом сайте. Касса позволяет принимать платежи с помощью банковских карт и Яндекс.Денег, а так же подключить онлайн-кассу. Если у вас интернет-магазин на одной из популярных Читать далее

Вывод постов из Instagram на сайт с помощью API

У инстраграма нет готового виджета для вывода постов на сайте. В прошлой статье мы рассматривали как создать Instagram виджет для сайта с помощью конструктора. Это самый простой и быстрый способ, и на мой взгляд самый лучший. Единственный его минус, как Читать далее

PHP классы, объекты, методы

Абсолютно любой предмет из нашей жизни мы можем описать по его характеристикам и состоянию, а так же воздействовать на это состояние. Например, ваш автомобиль имеет определенный цвет, марку, двигатель и т.д. Кроме того он может ехать, стоять, набирать или сбавлять Читать далее

Удалить значение из массива на PHP

Удалить значение из массива по ключу на PHP довольно простая задача, но вот когда необходимо удалить элемент массива именно по значению, то тут возникают небольшие сложности. Вроде бы банальная задача, но придется воспользоваться небольшой хитростью. В этой статье рассмотрим как Читать далее

Создание чат-бота для Viber

В этой статье рассмотрим как создать простого чат-бота для Viber, который будет принимать и отправлять сообщения в чат. Шаг 1 Итак, для начала необходимо зарегистрироваться в сервисе Viber Admin Panel по этой ссылке. Шаг 2 Создаём бота. Для этого заполняем Читать далее

Регулярные выражения PHP: preg_match, preg_split, preg_replace

Регулярные выражения - это мощный алгоритм сопоставления с образцом, который может быть выполнен в одном выражении. Регулярные выражения используют арифметические операторы, такие как (+, -, ^) для создания сложных выражений. Регулярные выражения помогают вам выполнять такие задачи, как проверка адресов Читать далее

Добавить комментарий

*

code