Rutube: интегрируем как ombed provider source в Drupal

Задача — добавить rutube как embed провайдера в медиа библиотеку, чтобы можно было создать медиа тип Rutube, где будет поле для ввода ссылки. Медиа поля после этого позволят добавлять еще один тип содержимого — Rutube.

Будем использовать модуль oembed_providers для настройки rutube провайдера. Плагин уже поддерживает 10/11 Drupal, так что подойдет для новых проектов.

Custom provider Rutube

/admin/config/media/oembed-providers/custom-providers
В настройках кастомных провайдеров, нужно создать описание для oembed сервиса rutube. Почему rutube до сих под нет в списке провайдеров https://oembed.com/providers.json — остаётся загадкой. Возможно, они не соответствуют полной спецификации.

Итак, добавляем:

Provider name: Rutube
Provider URL: https://rutube.ru
Далее описываем endpoint:
Schemas: https://rutube.ru/video/*/
Discovery: True
JSON: True

Можно JSON/XML галочки не ставить. Но я проверил, что JSON работает на rutube, поставил там галку.

Провайдер готов, теперь его нужно оформить как Media Source.

Provider Bucket

/admin/config/media/oembed-providers/buckets
В плагине oembed_providers медиа источники создаются через объявление «провайдерских ведер», что бы это не значило.

В бакете вы создаёте медиа источник, который может представлять сразу нескольких провайдеров. Здесь будет показан весь список с oembed.com плюс созданный нами провайдер rutube. Отмечаем его галочкой.

Ведро я обозвал — Rutube Provider.

Создаём тип медиа

/admin/structure/media/add
Теперь, когда мы создали медиа источник, основанный на кастомном провайдере rutube, мы можем создать новый медиа тип, который принимает объекты нужного нам типа.

Укажите название медиа типа и выберите медиа источник.

После это нужно будет сконфигурировать источник, выбрав поле из списка и поставив галочку напротив провайдера.

В секции field mapping не так много можно сделать как хотелось бы, обычно в выпадающем списке доступно только поле Name, которое сопоставляется с «Resourсe title».

Создание медиа контента

Теперь в медиа вам доступно создание новых элементов типа «Rutube Video Media Type».

Пример создания контента:

Обратите внимание, что URL должна заканчиваться «/». Указанная нами схема и не позволит иного варианта, но некоторых смущают ошибки вроде «The provided URL does not represent a valid oEmbed resource

Oembed подтянет иконку для видео автоматически. Вот так это примерно выглядит в медиа библиотеке:

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

Rendered entity — выведет дефолтовый html, который передаётся oembed сервисом. Thumbnail — выведет тизер.

Написать комментарий

 

Комментарии к «Rutube: интегрируем как ombed provider source в Drupal»

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



Комментарий: