Задача — добавить rutube как embed провайдера в медиа библиотеку, чтобы можно было создать медиа тип Rutube, где будет поле для ввода ссылки. Медиа поля после этого позволят добавлять еще один тип медиа содержимого — Rutube Video.
Будем использовать модуль 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 работает для oembed rutube сервера, поставил там галку.
Еще один нюанс — обратите внимание, что имя провайдера (provider name) написано с маленькой буквы. Там на форме есть примечание — The ‘Provider name’ must match the provider_name
value returned by the provider’s endpoint. Это не очень понятно при заполнении, и вообще кажется, что ни на что не должно влиять, т.к. там есть и машинное имя провайдера.
Но именно название используется для сопоставления, а машинное имя чисто для внутренних потребностей движка.
Провайдер готов, теперь его нужно оформить как 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.», которые выводятся, если формат URL не соответствует шаблону.
Oembed подтянет иконку для видео автоматически. Вот так это примерно выглядит в медиа библиотеке:

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

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