Table of Contents
Обложки Youtube роликов
Размеры
Тип превью | Размер (пиксели) | Соотношение сторон |
---|---|---|
Default | 120 x 90 | 4:3 |
Medium | 320 x 180 | 16:9 |
High | 480 x 360 | 4:3 |
Standard | 640 x 480 | 4:3 |
Maximum Resolution | 1280 x 720 или 1920 x 1080 | 16:9 |
Ссылки
Default
JPEG: https://img.youtube.com/vi/[youtube-video-id]/default.jpg
WEBP: https://img.youtube.com/vi_webp/[youtube-video-id]/default.webp
Medium
JPEG: https://img.youtube.com/vi/[youtube-video-id]/mqdefault.jpg
WEBP: https://img.youtube.com/vi_webp/[youtube-video-id]/mqdefault.webp
High
JPEG: https://img.youtube.com/vi/[youtube-video-id]/hqdefault.jpg
WEBP: https://img.youtube.com/vi_webp/[youtube-video-id]/hqdefault.webp
Standard
JPEG: https://img.youtube.com/vi/[youtube-video-id]/sddefault.jpg
WEBP: https://img.youtube.com/vi_webp/[youtube-video-id]/sddefault.webp
Max Resolution
JPEG: https://img.youtube.com/vi/[youtube-video-id]/maxresdefault.jpg
WEBP: https://img.youtube.com/vi_webp/[youtube-video-id]/maxresdefault.webp
Как скачать
yt-dlp
yt-dlp video-ID --skip-download --write-thumbnail
self-hosted
bash
Простой bash скрипт для скачивания обложки по полной ссылке или ID видео в формате jpeg или webp.
#!/bin/bash # Функция для отображения помощи function show_help { echo "Скрипт для скачивания миниатюры YouTube." echo "" echo "Использование: ./youtube_thumbnail_downloader.sh" echo "Следуйте интерактивным подсказкам для ввода данных." echo "" echo "Опции:" echo " -h, --help Показать это сообщение помощи и выйти." echo "" echo "Алгоритм работы:" echo " 1. Введите URL или ID видео." echo " 2. Скрипт проверит, существует ли видео (по доступности миниатюры)." echo " 3. Если видео существует, выберите формат (JPEG/WebP) и качество." echo " 4. Миниатюра будет скачана в текущую директорию." echo "" echo "Пример использования:" echo " ./youtube_thumbnail_downloader.sh" } # Проверка аргументов для показа помощи if [[ "$1" == "-h" || "$1" == "--help" ]]; then show_help exit 0 fi # Функция для выбора формата function select_format { echo "Выберите формат для сохранения миниатюры:" echo "1) JPEG" echo "2) WebP" read -p "Введите номер формата (по умолчанию: 1): " format_choice case $format_choice in 2) FORMAT="webp" ;; *) FORMAT="jpeg" ;; esac echo "Выбран формат: $FORMAT" } # Функция для выбора качества function select_quality { echo "Выберите качество миниатюры:" echo "1) default (низкое качество)" echo "2) mqdefault (среднее качество)" echo "3) hqdefault (высокое качество)" echo "4) sddefault (очень высокое качество)" echo "5) maxresdefault (максимальное качество)" read -p "Введите номер качества (по умолчанию: 5): " quality_choice case $quality_choice in 1) QUALITY="default" ;; 2) QUALITY="mqdefault" ;; 3) QUALITY="hqdefault" ;; 4) QUALITY="sddefault" ;; *) QUALITY="maxresdefault" ;; esac echo "Выбрано качество: $QUALITY" } # === Основная логика === # Запрашиваем URL или ID видео read -p "Введите URL или ID видео YouTube: " input # Определяем, это URL или ID if [[ "$input" =~ ^https?:// ]]; then VIDEO_ID=$(echo "$input" | grep -oE "v=([a-zA-Z0-9_-]{11})" | cut -d'=' -f2) if [[ -z "$VIDEO_ID" ]]; then echo "Ошибка: Не удалось извлечь ID видео из URL." >&2 exit 1 fi else VIDEO_ID="$input" fi # Проверка на существование видео (по дефолтной миниатюре JPEG) CHECK_URL="https://img.youtube.com/vi/$VIDEO_ID/default.jpg" echo "Проверка доступности видео..." HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" "$CHECK_URL") if [[ "$HTTP_STATUS" != "200" ]]; then echo "Ошибка: Видео с ID '$VIDEO_ID' не найдено или недоступно." exit 1 fi echo "Видео найдено! Можно скачивать миниатюры." # Запрашиваем формат и качество select_format select_quality # Формируем URL для миниатюры if [[ "$FORMAT" == "webp" ]]; then THUMBNAIL_URL="https://img.youtube.com/vi_webp/$VIDEO_ID/$QUALITY.webp" else THUMBNAIL_URL="https://img.youtube.com/vi/$VIDEO_ID/$QUALITY.jpg" fi OUTPUT_FILE="${VIDEO_ID}_${QUALITY}.${FORMAT}" # Скачивание миниатюры echo "Скачивание миниатюры с $THUMBNAIL_URL..." curl -s "$THUMBNAIL_URL" --output "$OUTPUT_FILE" if [[ $? -eq 0 && -s "$OUTPUT_FILE" ]]; then echo "✅ Миниатюра успешно сохранена в файл: $OUTPUT_FILE" else echo "Ошибка: Не удалось скачать миниатюру (возможно, выбранное качество недоступно)." rm -f "$OUTPUT_FILE" fi
Discussion