Ключ API Youtube — Помощь Uppod

В версии 3 API от Youtube были изменения, из-за чего работа с ним поначалу вызывает сложности. Рассмотрим как реализовать вставку на страницы песенного сайта нескольких роликов, выбираемых из Youtube. Этот способ мы внедрили в loco.ru для проекта learnsongs.ru. С прошлой версией API мы подключали flash-плеер и это не работало на iphone. Сейчас плеер вставляется через iframe и ролики прекрасно играются и со смартфонов.

В виде добавим код html:

<div id=»container»> <input type=»hidden» id=»encodedStr» value=»<?php echo $model->title;?>+<?php echo $model->artist1->name;?>»/> <ul class=»inline» id=»results»></ul> </div>

ненумерованный список ul будем заполнять при помощи jQuery. Скрытый input с id=»encodedStr» пишем для задания значения для поиска. Наш js-скрипт будет брать значение из его параметра value и передавать на API youtube для поиска релевантных видео.

Вот содержимое нашего файла script.js, в котором и происходит вся магия. Чтобы это заработало, не забудьте подключить его — либо в шаблоне, либо в виде, либо в контроллере (смотря как это у вас в проекте организовано). Также не забудьте подключить jquery, в Yii и Yii2 он включен, но проверьте что это так.

Обратите внимание на параметр key. Его нужно создать в API — https://console.developers.google.com, добавив проект и подтвердив права на сайт. Без этого не получится работать с API. Соответственно понадобится аккаунт в Google.

Помогло:

1) документация Youtube Data API Search;

2) замечательный видеоурок от Brad Traversy по внедрению показа роликов из определённого канала на сайте. Пошаговое внедрение роликов на сайт. Тут немного по-другому устроен скрипт — он ищет конкретный канал и выводит видео из него.

Основное меню

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

Для более подробной информации об API и посмотреть пример данных которые выдает YouTube можно пройти по этой ссылке: http://code.google.com/intl/ru/apis/youtube/2.0/developers_guide_protocol_understanding_video_feeds.html

А теперь практика, представим что у нас есть ИБ со свойством VIDEO в котором хранится код видео ролика о котором мы хотим получить информацию. Для этого в папке с шаблоном компонента, выводящего список элементов нашего ИБ, к примеру news.list, создаем файл result_modifier.php со следующим содержимым:

//Получаем ссылку на на тумбнаил, вообще объект содержит массив тумбнаилов, разных размеров и взятых с разных мест ролика thumbnail
$attrs = $media->group->thumbnail[1]->attributes();
$thumbnail = $attrs[‘url’];

//Получаем информацию о длине видео в секундах
$yt = $media->children(‘http://gdata.youtube.com/schemas/2007’);
$attrs = $yt->duration->attributes();
//Переводим секунды в строку вида ЧЧ:ММ:СС
$length = sec2hms($attrs[‘seconds’]);

//Сохраняем данные в массив для последующего вывода в компоненте
$arResult[«ITEMS»][$key][«LENGHT»]=$length;
$arResult[«ITEMS»][$key][«TMB»]=$thumbnail;
}
}

//Функция перевода секунд в строку вида ЧЧ:ММ:СС
function sec2hms ($sec, $padHours = false) {
$hms = «»;
$hours = intval(intval($sec) / 3600);
if ($hours>0) {
$hms .= ($padHours)
? str_pad($hours, 2, «0», STR_PAD_LEFT). «:»
: $hours. «:»;
}
$minutes = intval(($sec / 60) % 60);
$hms .= str_pad($minutes, 2, «0», STR_PAD_LEFT). «:»;
$seconds = intval($sec % 60);
$hms .= str_pad($seconds, 2, «0», STR_PAD_LEFT);
return $hms;
}

Бонусом приведу стили для отображения превью в стиле youtube.
Разметка HTML:

Провайдер YouTube в движке может:

  • Конвертировать и хранить на своих серверах;
  • Парсить видео по критериям — по поисковому запросу, из канала пользователя и из плейлистов.

Настройка провайдера для конвертации и хранения

Провайдер может работать в двух режимах: простой парсинг видео и конвертация/хранение/воспроизведение. Работа провайдера YouTube основана на API V3.

Для обоих типов работы необходимы следующие действия:

  1. Перейдите в консоль разработчика Google;
  2. Выберите существующий или создайте новый проект;
  3. Убедитесь, что API данных YouTube V3 включен;
  4. В боковой панели слева, выберите учетные данные.

Для работы простого парсинга видео необходимо:

  1. Необходимо получить только API key. Для этого в блоке «Учетные данные» нажмите «Создать учетные данные » и в появившемся меню нажмите «Ключ API».
  2. Ключ создан.

    Основное меню

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

  3. Созданный ключ появится в списке ключей ниже. Его можно отредактировать, где можно ограничения, такие как ip адрес вашего сервера или же подсеть, откуда будут приходить запросы.

Для конвертации и хранения на YouTube необходимо:

  1. Необходимо получить Client ID и Client secret. Для этого в блоке «Учетные данные» нажмите «Создать учетные данные » и в появившемся меню нажмите «Идентификатор клиента OAuth»;
  2. Выберите тип приложения «Веб-приложение» и нажмите «Создать»;
  3. У вас появится блок Клиент OAuth. Из него в соответствующие поля формы настроек провайдера YouTube вам нужно будет скопировать Client ID (Ваш идентификатор клиента) и Client secret (Ваш секрет клиента);
  4. После того, как вы в форме настроек провайдера YouTube, заполнили поля из п.3 вам необходимо сохранить эти настройки, после чего заново открыть их и получить токен доступа (для InstantVideo 1.X) или нажать на ссылку «Получить токен доступа» (для InstantVideo2);
  5. На сайте youtube.com создайте канал.

Теперь вы настроили интеграцию с YouTube и нужно проверить работоспособность. Для этого, в админке перейдите в раздел «Массовый импорт» (для InstantVideo 1.X) или выберите добавление массовым импортом на сайте (для InstantVideo 2.X) или же просто на сайте попробуйте импортировать ролик по ссылке с YouTube.

Если импорт прошел успешно, то на этом настройка завершена. Если возникли ошибки при импорте, то необходимо перейти в админку — компоненты — видео каталог и нажать на иконку списка логов (или нажать на меню «Логи» для InstantVideo2). В большинстве случаев там будет текст ошибки. Нужно внимательно прочитать этот текст, при необходимости перевести на русский, чтобы вам было понятнее.

Расшифровка опций настроек провайдера YouTube

  • «В какую категорию Youtube загружать ролики» — к этой категории будут привязаны ролики, которые вы будете загружать на YouTube. Актуальна, если вы используете конвертацию и хранение роликов на их серверах;
  • «Доступ ролика на YouTube» — можно указать либо доступ по ссылке, либо открытый. В первом случае ролик не будет виден в общем списке канала. так же опция актуальна, если вы используете конвертацию и хранение роликов на серверах YouTube;
  • «Какой плеер использовать для воспроизведения роликов youtube» — эта опция обусловлена тем, что в «своих плеерах», зачастую не будут засчитываться просмотры на youtube.com. Однако, например в плеере Uppod есть возможность в настройках стилей включить опцию, чтобы просмотры считались;
  • «Скрывать лого youtube в плеере» — При скрытии лого, просмотры ролика на youtube не учитываются. Работает только для плеера youtube. Лого скроется на панели плеера, при полноэкранном режиме справа внизу лого будет всегда;
  • «Выполнять запросы от имени посетителя» — в каждый запрос к api будет вместо серверного ip подставляться ip посетителя сайта, полезно для уменьшения квот. Обратите внимание, что если эта опция включена, то в консоли Google ограничение по ip должно отсутствовать;
  • «Синхронизировать с аккаунтом» — актуальна при конвертации и хранении на YouTube. Редактирование данных ролика (название, описание и теги) будет так же отражаться на соответствующем ролика на youtube.com. Кроме этого, если вы удалите ролик со своего сайта, он так же удалится на YouTube.

Скрыть логотип YouTube при воспроизведении в своих плеерах можно только настройкой скинов плеера, например в Uppod можно сделать нижнюю панель плеера больше и она перекроет логотип, однако в полноэкранном режиме логотип будет все равно виден. Так же можно уменьшить «навязчивость» логотипа YouTube, выбрав в проигрывание в плеере YouTube и не выключив опцию » Скрывать лого youtube в плеере». В этом случае в нижней панели логотип будет виден, а при полноэкранном режиме не будет. Автоскрытие панели управления плеером сведет на нет для пользователя напоминание о YouTube.

Видео настройки YouTube Data API

Параметр vq определяет критерий поиска.

YouTube API. Загрузка видео на youtube с сайта

YouTube ищет все метаданные видео для видео, соответствующих критерию. Метаданные видео включают названия, ключевые слова, описания, имена пользователей-авторов и категории.

Заметьте, что все пробелы, кавычки и другие знаки препинания в значении параметра должны быть переведены в URL.

Для поиска точной фразы, включите ее в кавычки. Например, для поиска видео, соответствующих фразе «spy plane» (самолет-шпион), установите параметр vq на значение %22spy+plane%22.

В запросе можно применять логические операторы NOT (-) и OR (|), для того, чтобы исключить видео или найти видео, связанные с одним из нескольких критериев.

Например, для поиска видео, соответствующих «boating» или «sailing» (хождение на веслах или под парусами), установите параметр vq на значение boating%7Csailing. (Заметьте, что символ вертикальной черты должен быть переведен в URL.) Таким же образом, для поиска видео, соответствующих «boating» или «sailing», но не «fishing», установите параметрvq на «boating&7Csailing+-fishing».

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *