YouTube API Key (Получение + Пример)

API YouTube — это интерфейс, который позволяет встраивать видео, создавать списки воспроизведения и предлагать другие функции YouTube на вашем веб-сайте. Это помогает компаниям предлагать расширенные функции обмена видео на своем веб-сайте или в приложении без необходимости писать код с нуля.

Содержание:

  1. Данные API YouTube.
  2. Получение ключа API.
    1. Вход в Google Cloud Platform.
    2. Создание нового проекта.
    3. Добавление библиотеки YouTube Data API v3.
    4. Создание учетной записи и получение ключа.
  3. Пример.
  4. F.A.Q.

Как и другие API (интерфейсы программирования приложений), API YouTube упрощает работу программиста, пропуская рутинную работу по написанию каждой строки кода каждый раз, когда пользователям требуется доступ к данным. Вместо этого программисты могут использовать предопределенные функции и протоколы для подбора видео YouTube на веб-сайте.

Кроме того, API YouTube имеет широкий набор функций, которые делают его доступным для разработчиков и ценным для бизнеса. Это позволяет вам извлекать данные в массовом масштабе без необходимости доступа к отдельным видео и каналам.

Так какие данные вы можете использовать с помощью YouTube API? Давайте взглянем.

Данные API YouTube

API YouTube предоставляет вам доступ к данным YouTube более полным и масштабируемым способом, чем отдельные коды для встраивания YouTube. Вы можете получать целые плейлисты, загрузки пользователей и даже результаты поиска с помощью API YouTube. Вы также можете добавить функции YouTube на свой веб-сайт, чтобы пользователи могли загружать видео и управлять подпиской на канал прямо с вашего веб-сайта или приложения.

Давайте рассмотрим некоторые из наиболее популярных функций API. Это не весь список; рекомендую ознакомиться с официальной документацией Google.

Цель
использования API
Пример
HTTP-запроса
Действие на вашем сайте или приложении
Поиск YouTubeGET / searchИзвлечение ряда результатов поиска на основе заданного вами запроса
Плейлисты YouTubeDELETE / playlistsУдаление плейлиста
Видео YouTubeGET / videosПолучение информации о нужном(-ых) видео на YouTube с вашего веб-сайта или приложения
Комментарии YouTubePOST / commentsПозволяет пометить один или несколько комментариев как спам
Каналы YouTubeGET / channelsИзвлечение видео или плейлистов канала (или любой другой ресурс, например комментарии)
Подписки YouTubePOST / subscriptionsДобавление подписчика на канал
Подписчики YouTube КаналаGET / membersПолучение списка участников канала, который дал вам разрешение
Разделы YouTubePOST / channelSectionsПозволяет добавить раздел рекомендуемых видео
Водяные знаки YouTubePOST / watermarks / unsetПозволяет удалить изображение водяного знака, связанное с каналом

Как получить API-ключ YouTube

Чтобы получить API YouTube:

  1. Войдите в консоль разработчиков Google.
  2. Создайте новый проект.
  3. На панели инструментов нового проекта нажмите Explore & Enable APIs.
    В библиотеке перейдите к YouTube Data API v3 в разделе YouTube API.
  4. Включите API.
  5. Создайте учетную запись.
  6. Появится экран с ключом API.

1. Вход в консоль разработчиков Google

Вы можете войти в Google Cloud Platform, используя свою учетную запись Google.
Если у вас её еще нет, вам нужно создать учётную запись.

2. Создание нового проекта

Как только вы войдете в систему, вы автоматически попадете на пустую панель инструментов. В правом верхнем углу нажмите Create Project.

Панель инструментов Google Developers Console

Вы попадете на экран, где вы можете добавить название проекта, выбрать свою организацию и выбрать местоположение (URL).

Вы можете создать проект без организации. Если у вас нет организации, вам не будет предложено выбрать местоположение.

Создание нового проекта в Google Developer Console

После создания проекта всё, что вы сделаете с этого момента, включая создание ключа API, будет применяться к этому конкретному проекту. Если у вас одновременно запущено несколько проектов, убедитесь, что выбран правильный, дважды проверив, что проект указан на верхней панели навигации.

3. YouTube Data API v3

После создания проекта можно добавлять любую необходимую API библиотеку.

Новый проект в Google Cloud Platform создан

Для этого нажмите сверху ENABLE APIS AND SERVICES или в левом меню (сайдбаре) нажмите Library.

Выполните поиск, введя YouTube Data API v3.

Библиотека API Google, где находится API YouTube.

Выберите его и нажмите Enable для активации.

Страница YouTube API в Google Cloud Platform

4. Создание учетной записи

После нажатия кнопки Enable вы попадете на страницу обзора данного API.

Панель инструментов YouTube Data API v3

На данной странице вы можете отслеживать запросы, квоту, а также добавить учетные данные

Создать учётные данные можно во вкладке Credentials на данной странице (или такую же ссылку в сайдбаре).

Страница создания учётных данных Google Cloud Platform

Вверху нажмите Create credentials » API key. Ключ API создан.

YouTube API Key успешно создан

Для настройки API ключа для данной учетной записи нажмите на имя вашего ключа API.
На данном экране можно задать название ключу, скопировать его, задать ограничения для API.

В разделе API restrictions выберите YouTube Data API v3 и нажмите Save.

Добавление YouTube API для учетной записи

Таким образом мы активировали для данной учетной записи необходимый нам API.

Пример использования YouTube API

Например, необходимо получить данные о конкретном YouTube видео.

Значит мы будем использовать тип ресурса Videos метод list - подробнее.

Создадим функцию для получения данных о конкретном видео YouTube по его ссылке.

function getYoutubeVideoInfo($video_url)
{
    // Преобразование ссылки в id YouTube

    // Получение данных при помощи YouTube API

    // Преобразование длительности YouTube в часы:минуты:секунды
}

Преобразуем обычную ссылку на ролик YouTube в id.

$pattern = '#^(?:https?://)?(?:www\.)?(?:youtu\.be/|youtube\.com(?:/embed/|/v/|/watch\?v=|/watch\?.+&v=))([\w-]{11})(?:.+)?$#x';
preg_match($pattern, $video_url, $matches);
$video_id = (isset($matches[1])) ? $matches[1] : false;

Теперь нужно воспользоваться полученным ранее ключом API и получить необходимую информацию о видео.

$api_key = "AIzaSyAwGUSLR-S7iSRFO6JDZwlEskC_5M6zeys";
$url = "https://www.googleapis.com/youtube/v3/videos?id=" . $video_id . "&key=" . $api_key . "&part=snippet,contentDetails,status";
$getData = json_decode(file_get_contents($url), true);

foreach ((array)$getData['items'] as $key => $data) {
    $video_duration = $data['contentDetails']['duration']; // Длительность ролика

    // Превью видео
    if (array_key_exists('maxres', $data['snippet']['thumbnails'])) {
        $video_poster =  $data['snippet']['thumbnails']['maxres']['url'];
    } else if (array_key_exists('standard', $data['snippet']['thumbnails'])) {
        $video_poster =  $data['snippet']['thumbnails']['standard']['url'];
    } else {
        $video_poster =  $data['snippet']['thumbnails']['high']['url'];
    }
}

Теперь нам необходимо преобразовать полученную длительностью видео YouTube в нужный нам вид. По умолчанию данные приходят в формате PT3M21S.

$start = new DateTime('@0'); // Unix epoch
$start->add(new DateInterval($video_duration));
$video_duration_seconds = $start->format('H:i:s');

return array($video_duration_seconds, $video_poster);

Итоговый код:

function getYoutubeVideoInfo($video_url)
{
    // Преобразование ссылки в id YouTube
    $pattern = '#^(?:https?://)?(?:www\.)?(?:youtu\.be/|youtube\.com(?:/embed/|/v/|/watch\?v=|/watch\?.+&v=))([\w-]{11})(?:.+)?$#x';
    preg_match($pattern, $video_url, $matches);
    $video_id = (isset($matches[1])) ? $matches[1] : false;

    // Получение данных при помощи YouTube API
    $api_key = "AIzaSyAwGUSLR-S7iSRFO6JDZwlEskC_5M6zeys";
    $url = "https://www.googleapis.com/youtube/v3/videos?id=" . $video_id . "&key=" . $api_key . "&part=snippet,contentDetails,status";
    $getData = json_decode(file_get_contents($url), true);

    foreach ((array)$getData['items'] as $key => $data) {
        $video_duration = $data['contentDetails']['duration']; // Длительность ролика

        // Превью видео
        if (array_key_exists('maxres', $data['snippet']['thumbnails'])) {
            $video_poster =  $data['snippet']['thumbnails']['maxres']['url'];
        } else if (array_key_exists('standard', $data['snippet']['thumbnails'])) {
            $video_poster =  $data['snippet']['thumbnails']['standard']['url'];
        } else {
            $video_poster =  $data['snippet']['thumbnails']['high']['url'];
        }
    }

    // Преобразование длительности YouTube в часы:минуты:секунды
    $start = new DateTime('@0'); // Unix epoch
    $start->add(new DateInterval($video_duration));
    $video_duration_seconds = $start->format('H:i:s');

    return array($video_duration_seconds, $video_poster);
}

Чтобы получить информацию о видео просто вызовите данную функцию:

print_r(getYoutubeVideoInfo('https://youtu.be/_Kqtj14rxes'));

Получим:

Array
(
    [0] => 02:53:28
    [1] => https://i.ytimg.com/vi/_Kqtj14rxes/hqdefault.jpg
)

Вывод построчно:

echo getYoutubeVideoInfo('https://youtu.be/_Kqtj14rxes')[0];
echo "<br>";
echo getYoutubeVideoInfo('https://youtu.be/_Kqtj14rxes')[1];

Получим:

02:53:28
https://i.ytimg.com/vi/_Kqtj14rxes/hqdefault.jpg

Часто задаваемые вопросы

Остались вопросы об использовании YouTube API? Возможно вы найдёте ответ ниже.

Является ли API YouTube бесплатным?

API YouTube предоставляется бесплатно, если вы не превышаете суточную квоту запросов API. Каждый запрос стоит заранее определенное количество баллов. Вы получаете 10 000 баллов в день.

Сколько стоит API YouTube?

Плата за доступ к API данных YouTube зависит от использования квоты.
На каждый проект вам дается 10 000 бесплатных баллов в день, и все запросы стоят не менее одного балла.

Вы можете оценить свои квоты с помощью калькулятора квот, и если вам нужно больше запросов, вы можете подать заявку на более высокие квоты. Цена может измениться в большую сторону :)

Для примера, тип ресурса Videos с методом list YouTube API квота составляет 10 000 бесплатных единиц в день, т.к. один запрос стоит один балл.

Если у вас остались вопросы, напишите их в комментариях.