
Мы все дома любим смотреть видео из интернета, скачивать его и сохранять в своих коллекциях. Для это мы использую домашние серверы, NAS или даже старенький ноутбук с внешним диском. Мы находим понравившийся ролик на YouTube и хотим добавить его в свою коллекцию. Но как сделать это быстро и максимально просто — без веб-сайтов с надоедливой рекламой, без танцев с командной строкой или без громоздких GUI?
Так появился Elengrab — лёгкий веб-сервис для загрузки видео с YouTube, который работает быстро, не требует танцев с бубном и отлично подходит для домашнего сервера.
Чтобы быстро развернуть Elengrab, достаточно установить Docker и выполнить следующую команду:
docker run -d \ --name elengrab \ -v elengrab_downloads:/app_n/downloads \ -p 8080:8080 \ neosy/elengrab:latest
После этого Elengrab будет доступен по адресу http://localhost:8080
Зачем вообще нужен свой загрузчик с YouTube
Сервисов по скачиванию видео — сотни. Но большинство из них ограничены, перегружены рекламой и жутко медленные.
Хотелось просто:
- на компьютере или на телефоне
- вставил ссылку на YouTube
- нажал кнопку
- забрал видео или аудиофайл.
И чтобы все это работало у тебя и без посредников.
Что такое Elengrab?
Elengrab — это лёгкий веб-интерфейс к yt-dlp.
Под капотом у него:
- Минималистичный UI
- Быстрый backend и frontend на Go с HTMX.
- Никаких лишних зависимостей
- Запуск в одну команду
- Работает практически везде, где можно запустить приложение на Go или в Docker-контейнере
Elengrab не пытается быть “комбайном”. Он просто скачивает видео или аудио с YouTube в выбранном формате.
Основные возможности
- Легкий и быстрый веб-интерфейс — открываешь и сразу понятно, что делать
- Мобильное веб-приложение — работает на смартфоне так же удобно, как на компьютере
- Светлый и тёмный интерфейс — выбирай под настроение
- Скачивание видео — mp4 (AV1, H.264, H.265) и webm
- Скачивание только аудио — mp3, m4a, opus, flac
- Автоматический анализ ссылки — вставил ссылку, и Elengrab сам понимает, что нужно
- Поддержка параллельных загрузок — по умолчанию 3, чтобы не ждать слишком долго
- Статусы загрузки — видно, что загружается и сколько осталось
- История скачивания — легко найти то, что скачивал раньше
- Очистка повторений — чтобы файлы не дублировались
Исходный код: https://github.com/neosy/elengrab
Docker-контейнер: https://hub.docker.com/r/neosy/elengrab
Как работает
Всё максимально просто:
- Вставляете ссылку на YouTube.
- Выбираете формат и нажимаете Get.
- Elengrab вызывает yt-dlp с нужными параметрами.
- Наблюдаете за статусами загрузки.
- Скачиваете файл напрямую через интерфейс.
Это всё — без лишних шагов и посредников!
Рис. 1. Веб-интерфейс
Шаги установки Elengrab через Docker
1. Подготовка
Убедитесь, что у вас установлен Docker. Опционально: хорошо иметь Docker Compose, если планируете использовать compose-конфигурацию.
2. Запуск контейнера (одной командой)
docker run -d \ --name elengrab \ -v elengrab_db:/app_n/sqlite/data \ -v elengrab_db_backups:/app_n/sqlite/backups \ -v elengrab_downloads:/app_n/downloads \ -p 8080:8080 \ neosy/elengrab:latest
-d— запускает контейнер в фоне (detached).--name elengrab— задаёт имя контейнера (по желанию).-v elengrab_db:/app_n/sqlite/data— монтирует volume для хранения SQLite-базы (метаданные, история загрузок).-v elengrab_db_backups:/app_n/sqlite/backups— монтирует volume для хранения резервных копий SQLite-базы.-v elengrab_downloads:/app_n/downloads— монтирует volume для хранения загруженных видео/аудио — важно, чтобы файлы сохранялись на хосте, а не “внутри контейнера”.-p 8080:8080— пробрасывает порт 8080 контейнера на 8080 хоста, чтобы веб-интерфейс был доступен из браузера.neosy/elengrab:latest— имя Docker-образа (по умолчанию). GitHub
После этого Elengrab будет доступен по адресу http://<your-host-ip>:8080
3. Запуск через Docker Compose
Пример docker-compose.yml:
version: "3.8"
services:
elengrab:
image: neosy/elengrab:latest
container_name: elengrab
restart: unless-stopped
ports:
- "8080:8080"
environment:
TZ: "Europe/Moscow" # ваш часовой пояс
volumes:
- elengrab_db:/app_n/sqlite/data
- elengrab_db_backups:/app_n/sqlite/backups
- elengrab_downloads:/app_n/downloads
Затем:
docker-compose up -d
После этого Elengrab будет доступен по адресу http://localhost:8080

Рис. 2. Elengrab после установки
План развития
Проект постепенно развивается и уже думаю над новыми возможностями:
- Полная загрузка плейлистов — чтобы можно было скачивать сразу все видео из списка
- REST API — для тех, кто хочет интегрировать Elengrab в свои проекты
- Раздельная загрузка по пользователям\сессиям — чтобы каждый мог управлять своими файлами независимо
- Поддержка Postgres и Redis — чтобы всё оставалось быстрым и стабильным, даже если одновременно пользуется много пользователей
Elengrab будет становиться удобнее, и любые новые обновления не будут ломать уже работающий функционал.