Elengrab — быстрый загрузчик YouTube для домашнего сервера

Мы все дома любим смотреть видео из интернета, скачивать его и сохранять в своих коллекциях. Для это мы использую домашние серверы, 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

Сервисов по скачиванию видео — сотни. Но большинство из них ограничены, перегружены рекламой и жутко медленные.

Хотелось просто:

  1. на компьютере или на телефоне
  2. вставил ссылку на YouTube
  3. нажал кнопку
  4. забрал видео или аудиофайл.

И чтобы все это работало у тебя и без посредников.

Что такое 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 будет становиться удобнее, и любые новые обновления не будут ломать уже работающий функционал.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии