Как вставить видео YouTube на сайт (адаптивно)
Вставьте видео YouTube, которое подстраивается под любой экран: меню «Поделиться», адаптивный код, время начала, режим конфиденциальности, WordPress и скорость.
Точный формат ссылок на превью YouTube (i.ytimg.com и img.youtube.com), все имена файлов, версии WebP и как использовать их в коде.
Каждое превью на YouTube лежит по предсказуемому адресу. Если вы знаете ID видео из 11 символов, ссылку можно собрать самостоятельно — без API-ключа.
ID — это 11 символов после v=, youtu.be/ или /shorts/:
| Ссылка | ID видео |
|---|---|
youtube.com/watch?v=dQw4w9WgXcQ | dQw4w9WgXcQ |
youtu.be/dQw4w9WgXcQ | dQw4w9WgXcQ |
youtube.com/shorts/dQw4w9WgXcQ | dQw4w9WgXcQ |
https://i.ytimg.com/vi/ID_ВИДЕО/ИМЯ_ФАЙЛА.jpg
Старый домен img.youtube.com/vi/ID_ВИДЕО/ИМЯ_ФАЙЛА.jpg отдаёт те же изображения.
| Файл | Размер | Что это |
|---|---|---|
maxresdefault.jpg | 1280 × 720 | Основное превью, только для HD-видео |
sddefault.jpg | 640 × 480 | Основное превью, 4:3 с полосами |
hqdefault.jpg | 480 × 360 | Основное превью, есть всегда |
mqdefault.jpg | 320 × 180 | Основное превью, 16:9 |
default.jpg | 120 × 90 | Основное превью, совсем маленькое |
0.jpg | 480 × 360 | То же изображение, что hqdefault |
1.jpg, 2.jpg, 3.jpg | 120 × 90 | Кадры, созданные автоматически |
У некоторых видео есть также hq1.jpg–hq3.jpg, mq1.jpg–mq3.jpg и sd1.jpg–sd3.jpg — увеличенные версии автоматических кадров.
Чтобы файлы были легче, замените vi на vi_webp, а .jpg на .webp:
https://i.ytimg.com/vi_webp/ID_ВИДЕО/maxresdefault.webp
Лёгкое превью «нажмите, чтобы смотреть», которое не загружает тяжёлый плеер YouTube до клика:
<a href="https://www.youtube.com/watch?v=ID_ВИДЕО">
<img src="https://i.ytimg.com/vi/ID_ВИДЕО/hqdefault.jpg"
width="480" height="360" loading="lazy"
alt="Название видео">
</a>
Используйте hqdefault.jpg, если нужен адрес, который работает всегда; maxresdefault.jpg чётче, но отсутствует у старых видео в низком разрешении (см. почему иногда нет HD-превью).
Если размера нет, YouTube возвращает заглушку 120 × 90. Проверьте ширину загруженного изображения:
const img = new Image();
img.onload = () => {
const exists = img.naturalWidth > 120;
console.log(exists ? 'HD есть' : 'HD нет');
};
img.src = `https://i.ytimg.com/vi/${id}/maxresdefault.jpg`;
Именно так наш загрузчик превью решает, какие размеры выделить серым.
В YouTube Data API поле snippet.thumbnails возвращает те же файлы под другими именами:
| Ключ в API | Файл | Размер |
|---|---|---|
default | default.jpg | 120 × 90 |
medium | mqdefault.jpg | 320 × 180 |
high | hqdefault.jpg | 480 × 360 |
standard | sddefault.jpg | 640 × 480 |
maxres | maxresdefault.jpg | 1280 × 720 |
Без API-ключа точка oEmbed от YouTube возвращает в JSON название, имя канала и thumbnail_url (всегда размера hqdefault.jpg):
https://www.youtube.com/oembed?url=https://www.youtube.com/watch?v=VIDEO_ID&format=json
Одно превью:
curl -o thumb.jpg https://i.ytimg.com/vi/VIDEO_ID/maxresdefault.jpg
Много превью по списку ID в ids.txt, с запасным hqdefault, если HD-размера нет (-f заставляет curl остановиться на ошибке 404, а не сохранять заглушку):
while read id; do
curl -sf -o "$id.jpg" "https://i.ytimg.com/vi/$id/maxresdefault.jpg" \
|| curl -s -o "$id.jpg" "https://i.ytimg.com/vi/$id/hqdefault.jpg"
done < ids.txt
URL не меняется, когда автор загружает новое превью, поэтому браузер или CDN могут показывать старую картинку. Добавьте любой параметр, чтобы скачать заново: YouTube его игнорирует, а кеш считает это новым адресом:
https://i.ytimg.com/vi/VIDEO_ID/maxresdefault.jpg?v=2
Затем очистите кеш своего сайта или CDN — и новое изображение увидят все. Другие причины и решения — в статье превью YouTube не обновляется.
YouTube сам использует эти адреса во встроенных плеерах и превью ссылок, и многие сайты показывают их рядом со ссылкой на видео. Всегда ставьте ссылку на оригинальное видео и уважайте права автора.
Адрес остаётся прежним, а меняется изображение. Браузеры и CDN из-за кэша могут ещё какое-то время показывать старое.
Нет. Самый большой файл, который YouTube отдаёт публично, — maxresdefault.jpg размером 1280 × 720, даже если автор загрузил картинку больше. Если нужен больший размер, увеличьте её сами в графическом редакторе.
Обычно нет. Видео с ограниченным доступом не показывают превью посторонним, поэтому URL возвращает ошибку или серую заглушку. Видео с доступом по ссылке работают как обычно, ведь их может открыть любой, у кого есть ID.
Вставьте ссылку и скачайте все доступные размеры — до 1280×720.
Открыть загрузчикВставьте видео YouTube, которое подстраивается под любой экран: меню «Поделиться», адаптивный код, время начала, режим конфиденциальности, WordPress и скорость.
Как найти 11-символьный ID видео YouTube в ссылках watch, youtu.be, Shorts, embed и live на компьютере или телефоне — и как извлечь много ID сразу.
Пошаговое руководство: как провести розыгрыш на YouTube — понятные правила, политика YouTube о конкурсах, идеи призов и честный выбор победителя.