Модуль Kinescope для Drupal
Если ваш сайт работает на Drupal, видео из Kinescope можно добавлять в материалы через модуль Kinescope. Вы вставляете ссылку на видео в поле, а модуль выводит на странице плеер Kinescope. Модуль поддерживает Drupal 10 и 11, текущая версия — 1.3.1.
Модуль разрабатывают и поддерживают партнёры Kinescope. С вопросами и ошибками в его работе обращайтесь в очередь задач проекта на drupal.org.
Когда вам пригодится модуль
- Видео в материалах — плеер в статье, на странице или в блоке через отдельное поле.
- Видео в медиатеке Drupal — ролики Kinescope хранятся рядом с картинками и документами, их можно подставлять в любые материалы.
- Данные видео без ручного ввода — с API-токеном модуль сам подтягивает название, описание, длительность и постер.
- Управление плеером из JavaScript — модуль подключает IFrame API, а события плеера вы обрабатываете в коде темы.
- Видео во всплывающем окне — на странице постер со ссылкой, плеер открывается поверх страницы.
Если хотя бы один из этих сценариев вам знаком — читайте дальше.
Из чего состоит модуль
Проект разделён на четыре модуля. Включайте только те, что вам нужны.
| Модуль | Что делает | Когда включать |
|---|---|---|
| Kinescope | Настройки и запросы к Kinescope API | Всегда |
| Kinescope Player | Тип поля Kinescope и вывод плеера | Всегда — без него видео не выводится |
| Kinescope Media | Источник Kinescope для медиатеки Drupal. Требует модуль ядра Media | Если храните видео в медиатеке |
| Kinescope Popup | Открытие плеера во всплывающем окне | Если нужен плеер поверх страницы |
Как работает модуль (4 шага)
- Вы загружаете видео в Kinescope и копируете ссылку на него.
- Вставляете ссылку в поле Kinescope или добавляете видео в медиатеку Drupal.
- Если задан API-токен, модуль запрашивает в Kinescope данные видео.
- Drupal выводит плеер Kinescope выбранным способом встраивания.
Теперь разберём, как это настроить.
Установка
Установите модуль через Composer:
composer require drupal/kinescopeВ админке Drupal откройте Extend (
/admin/modules).Отметьте Kinescope и Kinescope Player. Если нужно, отметьте также Kinescope Media и Kinescope Popup.
Нажмите Install.
/admin/... от языка интерфейса не зависят.Настройка модуля
Все настройки собраны на странице Configuration → Media → Kinescope settings (/). Открыть её может роль с правом Administer Kinescope settings.
Режим без токена и с токеном
Модуль работает и без API-токена — это режим по умолчанию. Токен добавляет данные о видео из Kinescope API.
| Без токена | С токеном | |
|---|---|---|
| Плеер на странице | Да | Да |
| Название видео в медиатеке | Kinescope: ID видео | Название видео в Kinescope |
| Миниатюра в медиатеке | Постер по адресу https:// | Постер из данных видео в API |
| Описание, подзаголовок, длительность | Нет | Да |
С токеном модуль запрашивает данные видео методом GET /.
Чтобы подключить токен:
- В Kinescope откройте Настройки → API-токены и создайте токен. Подробнее о токенах — в статье «Общие правила API».
- В Drupal на странице настроек Kinescope вставьте токен в поле API token.
- Нажмите Save configuration.
Токен можно задать и в файле settings.php:
// Токен Kinescope API для модуля Kinescope
$settings['kinescope.api_token'] = 'ВАШ_API_ТОКЕН';
Значение из settings.php главнее: поле API token в форме становится недоступным, а под ним появляется пометка, что токен задан в файле.
Проверить, видит ли Drupal токен, можно в Reports → Status report (/admin/reports/status). В строке Kinescope API token будет Configured или предупреждение Not configured.
Способ встраивания плеера
На той же странице, в блоке Player, выберите Embed method. Настройка общая: она действует для всех полей Kinescope на сайте.
| Способ | Что выводит модуль |
|---|---|
| Simple iframe embed (по умолчанию) | Обычный <iframe> без JavaScript — простое встраивание |
| IFrame API (auto-connect) | <iframe> с параметром enableIframeApi и скрипт IFrame API — автоподключение к IFrame API |
| Web Components (experimental) | Элемент <kinescope-iframe-player> — веб-компоненты |
IFrame API. Модуль только подключает плеер к IFrame API. Код, который управляет плеером и обрабатывает его события, вы добавляете в тему сами — примеры есть в статье «Автоподключение к IFrame API».
Web Components. В этом режиме модуль передаёт элементу только ссылку на видео. Ширина, высота и значение Allow-list options из настроек поля не применяются.
Видео в поле материала
Этот способ не требует медиатеки: видео хранится прямо в поле материала. Поле Kinescope можно добавить в любой тип сущности — материал, блок, абзац.
- Откройте Structure → Content types и выберите тип материала.
- Нажмите Manage fields и добавьте новое поле с типом Kinescope.
- В настройках поля решите, кто задаёт параметры плеера. За это отвечает флажок Allow editors to override player settings per video:
- включён (по умолчанию) — редактор задаёт параметры для каждого видео в форме материала;
- выключен — вы задаёте параметры один раз в настройках поля, и они действуют для всех видео в нём.
- Сохраните настройки поля.
Параметры плеера:
| Параметр | По умолчанию | Описание |
|---|---|---|
| Responsive | Включён | Плеер занимает ширину контейнера с пропорциями 16:9 |
| Width, Height | 640 × 480 | Размер плеера в пикселях. Не действует, если включён Responsive |
| Allow-list options | autoplay; fullscreen; picture-in-picture; encrypted-media; gyroscope; accelerometer; clipboard-write; screen-wake-lock; | Значение атрибута allow у <iframe> |
Теперь добавьте видео в материал:
- В Kinescope скопируйте ссылку на видео: кнопка «Ссылка» над плеером → «Копировать».
- В форме материала вставьте её в поле Kinescope URL.
- Сохраните материал. Поле Kinescope ID заполнится автоматически.
Поле принимает ссылки такого вида:
https://kinescope.io/ ID_видео https://kinescope.io/ embed/ ID_видео
Ссылка должна начинаться с https:// и не содержать параметров после ?. Иначе Drupal покажет ошибку The Kinescope URL is not valid.
Видео в медиатеке Drupal
Для этого способа включите Kinescope Media. Модуль не создаёт тип медиа сам — добавьте его один раз:
- Откройте Structure → Media types → Add media type (
/).admin/ structure/ media/ add - Введите название, например «Kinescope».
- В поле Media source выберите Kinescope и сохраните тип.
Drupal создаст в типе медиа поле Kinescope URL. Поля для названия в форме нет: модуль подставляет название сам — из Kinescope API или в виде Kinescope: ID видео, если токен не задан.
Добавить видео в медиатеку можно двумя способами:
- Через раздел Media. Откройте Content → Media → Add media, выберите тип Kinescope, вставьте ссылку и сохраните.
- Из окна медиатеки. Если включён модуль ядра Media Library, видео добавляется прямо при выборе медиа: на вкладке типа Kinescope вставьте ссылку и нажмите Add. Если токен не задан, окно покажет предупреждение об этом.
Чтобы выводить видео из медиатеки в материалах, добавьте в тип материала поле Media и разрешите в нём ваш тип медиа Kinescope.
Данные видео в полях медиа
С токеном модуль получает данные видео, которые можно сохранить в поля медиа. Для этого в настройках типа медиа откройте блок Field mapping и сопоставьте данные с полями.
| Данные в Drupal | Что содержит |
|---|---|
| Duration | Длительность видео в секундах |
| Description | Описание видео |
| Subtitles | Подзаголовок видео — поле subtitle в API, а не файл субтитров |
| Thumbnail URI | Адрес сохранённого постера |
| Video URL | Ссылка на видео |
Постеры модуль сохраняет в папку kinescope_thumbs публичной файловой системы Drupal.
Видео во всплывающем окне
Модуль Kinescope Popup выводит вместо плеера постер со ссылкой. По клику плеер открывается в окне поверх страницы.
- Включите Kinescope Popup.
- Выберите формат вывода Kinescope popup:
- для поля Kinescope в материале — в Manage display типа материала;
- для видео из медиатеки — в Manage display типа медиа Kinescope, у поля Kinescope URL. Формат поля Media в материале менять не нужно.
- В настройках формата задайте Link text — текст рядом с постером. По умолчанию — Play in popup.
Окно закрывается крестиком, клавишей Esc или щелчком за его пределами. При закрытии воспроизведение останавливается.
Ссылка на окно подписана ключом сайта и действует один час. Открыть окно могут роли с правом View published content.
Обновление с версий 1.1 и 1.2
В версиях 1.1.x и 1.2.x Kinescope был одним модулем. Начиная с 1.3 он разделён на четыре и работает только с Drupal 10 и 11.
Обновите модуль:
composer require drupal/kinescope:^1.3Запустите обновление базы данных:
drush updbили страница/update.php. Обновление само включит Kinescope Player и Kinescope Media.Проверьте способ встраивания на странице настроек Kinescope.
Очистите кеш:
drush cr
Если что-то не работает
Плеер не показывается на сайте. Проверьте, не ограничено ли встраивание видео по доменам. Если ограничено, добавьте домен сайта в разрешённые — смотрите статью «Ограничение доступа к видео».
Название и описание не подтягиваются. Откройте Reports → Status report и проверьте строку Kinescope API token. Если токен задан, загляните в журнал Drupal: при ответе API 401 или 403 модуль записывает в канал kinescope предупреждение о проверке токена. Пока токен не работает, модуль выводит видео без данных из API.
Поле не принимает ссылку. Проверьте, что ссылка начинается с https://kinescope.io/ и в ней нет параметров после ?.
Что дальше?
После настройки модуля рекомендуем:
- Ограничить доступ к видео — разрешите воспроизведение только на домене вашего сайта.
- Настроить защиту контента — включите DRM-шифрование и водяные знаки.
- Кастомизировать плеер — настройте внешний вид плеера под ваш бренд.
- Изучить IFrame API — управляйте плеером из JavaScript.
Остались вопросы по работе модуля? Задайте их разработчикам в очереди задач проекта на drupal.org.