Skip to content

mikedigriz/YT

Repository files navigation

Документация

🚀 Качалка

Веб-интерфейс для yt-dlp в одном Docker-контейнере

Docker Pulls Docker Image Size GitHub Stars

Powered by yt-dlp

Описание

Позволяет скачивать практически с любого ресурса видео.

  • Конвертирует в mp4 и хранит на сервере.
  • Есть возможность забрать аудиодорожку с видео.
  • По умолчанию скачивается максимальное качество видео.
  • Встраивает метаданные и обложку в загруженные файлы (видео и аудио).
  • Автоматически вырезает спонсорские вставки на YouTube через SponsorBlock.
  • Подходит для использования с устройствами на базе Win, macOS, Linux, Android, iOS.
  • Поддержка SOCKS5-прокси для обхода региональных ограничений
  • Авто-вставка ссылки из буфера обмена при возврате на вкладку (для известных сайтов)
  • Кастомный логгер загрузок
  • Ограничение загрузки контента 18+
  • Обработка ошибок, управление процессами и безопасность
  • Удобен для работы с контентом для SMM-групп и контент-маркетологов

Как пользоваться

  1. Вставить прямую ссылку в строку
  2. Кнопка СКАЧАТЬ
  3. Отследить что загрузка завершена
  4. Перейти на вкладку Видео
  5. Забрать файл

Дополнительно:

  • Формат: по умолчанию лучшее качество в mp4. Для аудио - переключите режим перед загрузкой
  • Прокси: укажите SOCKS5 в .env → параметр SOCKS5_URL (формат: socks5://user:pass@host:port). Если загрузка с русского сайта упадёт с ошибкой сети или блокировкой - система автоматически перезапустит её через прокси, без вашего участия
  • Доп. параметры yt-dlp: файл /etc/yt-dlp.conf
  • Логи: docker logs <container>

Docker

Предполагается что docker установлен и вы умеете пользоваться гуглом.

Готовый образ забрать можно тут


Установка:

git clone https://github.com/mikedigriz/YT.git && cd YT
docker build -t yt .

Запуск:

docker run -it -p 8000:80 yt

Чистая пересборка:

docker build --no-cache -t yt .

Рекомендации

  • Старые файлы чистятся хостовым cron: раз в час он через docker exec запускает очистку загрузок старше 2 часов.
    Готовый пример crontab лежит тут: app/etc/cron/host-crontab.example (туда же вынесено ежедневное обновление yt-dlp). Сами скрипты - в app/etc/Scripts. Внутри контейнера cron не работает: он крутится от www-data, а демону cron нужен root.

  • Названия файлов: используется измененный файл _utils.py для yt-dlp.
    При проблемах после обновления yt-dlp проверь этот файл.

  • Забрать готовый файл на телефон проще всего по QR-коду. Рядом с каждым файлом во вкладках "Видео" и "Музыка" есть кнопка с QR: жмак, навёл камеру телефона, забрал.

  • Если с ресурса перестало загружать - посмотрите на открытые ишью библиотеки yt-dlp.

Баги бэка

  • Скачивается видео без звука - проблема может быть в yt-dlp или ffmpeg.
  • Загрузка не начинается и во вкладках пусто - проблема с правами на каталог.
  • Загрузка началась и упала с ошибкой - сайты меняются, а некоторые как YouTube борются с загрузками. Проверить актуальность yt-dlp (обновляется автоматически каждый день в 03:00, версия видна в подвале). Проверить работает ли загрузка из консоли.
  • Диск почти полный - перед запуском загрузки проверяется наличие минимум 100 МБ свободного места. Если места не достаточно, показывается сообщение об ошибке вместо попытки загрузить. Очистите диск от старых файлов (см. рекомендации выше).

About

Качалка. Self-hosted Web UI for yt-dlp. Download video/audio from 1000+ platforms via Docker. PHP 8.4 + Python.

Topics

Resources

Stars

Watchers

Forks

Contributors