Skip to content

Все для WordPress, веб-розробки — і не тільки

Легкий фасад для YouTube і Vimeo

Легке вставлення YouTube і Vimeo: генератор фасаду

Вставте посилання на ролики — отримаєте готовий блок, який показує прев’ю і підвантажує програвач лише після кліку. Нуль зовнішніх бібліотек: усе, що потрібно, всередині згенерованого коду.

По одному в рядку. YouTube: watch?v=, youtu.be, /embed/, /shorts/, youtube-nocookie.com. Vimeo: vimeo.com/ID, player.vimeo.com/video/ID, приватні vimeo.com/ID/ХЕШ. Мітка часу ?t= / &start= переноситься у фасад. Необов'язкові уточнення через вертикальну риску: URL | Заголовок | URL прев'юшки.
hqdefault існує для будь-якого ролика. maxresdefault є лише там, де оригінал завантажили у 720p і вище — інакше картинка просто не відкриється, і глядач побачить порожній прямокутник.
Спільний для всіх роликів. Заголовок після риски у рядку має пріоритет. Підпис також потрапляє у aria-label кнопки та title iframe.
Vimeo не має передбачуваної адреси кадру, як i.ytimg.com у YouTube: її повертає лише oEmbed API, а запит до нього ми зробити не можемо — інструмент працює без мережі. Тому завантажте кадр у медіатеку сайту й вставте посилання. Без нього буде градієнтна заглушка з кнопкою play.
Поведінка згенерованого блоку
Вставте хоча б одне посилання, щоб побачити фасад.

Код збирається у вашому браузері. Ні згенерований блок, ні саме прев'ю не роблять жодного зовнішнього запиту — картинки з i.ytimg.com у прев'ю показані як адреси, а не завантажені.

Один вбудований ролик коштує понад мегабайт до першого кліку

Стандартний iframe YouTube завантажує близько 1,3 МБ у двох десятках запитів до семи сторонніх доменів — ще до того, як відвідувач вирішив дивитися відео. На сторінці з трьома роликами це втричі більше, і майже завжди саме воно псує показники швидкості на мобільних. Фасад вирішує проблему прямолінійно: спершу показується лише картинка-прев’ю з кнопкою відтворення, а справжній програвач вставляється у момент кліку. До кліку сторінка важить на порядок менше. Існує популярна бібліотека для цього, але всі інструкції радять підключати її з чужого CDN — тобто прибрати один зовнішній запит і додати інший. Тут згенерований код повністю самодостатній: стилі й скрипт лежать усередині блоку. Додатковий ефект стосується приватності. Стандартний iframe ставить трекінгові куки ще до перегляду. Домен youtube-nocookie.com відкладає це до моменту відтворення, а фасад — до кліку. Для сайтів, орієнтованих на європейську аудиторію, це прямо стосується вимог щодо згоди на куки.

Часті питання