Видео
Подвкладка включается настройкой prism.video_enable.
По ссылке, без ключей API
«Добавить видео» → вставьте ссылку. Название, обложка и длительность подтягиваются через oEmbed — регистрироваться у провайдера и заводить ключи не нужно.
| Провайдер | Что понимает | Плеер |
|---|---|---|
| YouTube | watch?v=, youtu.be/, /shorts/, /embed/, /live/ | youtube-nocookie.com |
| Vimeo | vimeo.com/{id}, player.vimeo.com/video/{id} | player.vimeo.com с dnt=1 |
| Dailymotion | dailymotion.com/video/{id}, dai.ly/{id} | geo.dailymotion.com |
| Rutube | rutube.ru/video/{id}/, /play/embed/{id} | rutube.ru/play/embed |
Обложка скачивается в prism/{resource_id}/posters/ и становится файлом элемента. Поэтому для
видео работают те же превью, srcset и точка фокуса, что и для изображений. Не удалось скачать —
элемент создастся без обложки, панель предложит загрузить свою.
VK Video и Kinescope требуют ключей API и в ядро не входят.
Локальные файлы
prism.video_extensions — по умолчанию mp4, webm, mov, m4v, лимит prism.max_file_mb.
Если на сервере есть ffmpeg, Prism определит длительность и размеры и возьмёт кадр на секунде
prism.video_poster_second как обложку. Без ffmpeg обложку загружают вручную в диалоге элемента.
Этот адрес приходит снаружи, поэтому Prism сначала проверяет, куда он ведёт: имя хоста
резолвится, и адреса во внутренней сети — loopback, приватные диапазоны, link-local вроде
169.254.169.254 — отклоняются. Переадресации Prism проходит сам, проверяя каждый переход.
Скачанная обложка дальше идёт тем же путём, что и обычная загрузка: пересохраняется сервером,
а не кладётся на диск как пришла.
На сайте
[[!prismVideos? &preset=`card` &cache=`1`]]
Штатный чанк prism.video — ленивый плеер: до клика на странице только обложка, кнопка и
длительность. Ни одного стороннего запроса и ни одной cookie, пока пользователь не нажал — это
аргумент и для скорости, и для 152-ФЗ с GDPR. Клик подставляет iframe с автозапуском.
Локальные ролики выводятся тегом <video controls preload="none"> с постером.