Elengrab — быстрый загрузчик YouTube

Предисловие

Мы все дома любим смотреть видео, скачивать его и сохранять в своих коллекциях. Для это мы используем домашние серверы, NAS или даже старенький ноутбук с внешним диском. Мы находим понравившийся ролик на YouTube и хотим добавить его в свою коллекцию. Но как сделать это быстро и максимально просто — без веб-сайтов с надоедливой рекламой, без танцев с командной строкой или без громоздких GUI?

Так появился Elengrab — YouTube downloader или лёгкий веб-сервис для загрузки видео с YouTube, который работает быстро, не требует танцев с бубном и отлично подходит для домашнего сервера.

Быстрый запуск Elengrab

Docker

Установите Docker и выполните одну команду:

docker run -d \
  --name elengrab \
  -v elengrab_downloads:/app_n/downloads \
  -p 8080:8080 \
  neosy/elengrab:latest

После запуска Elengrab будет доступен по адресу http://localhost:8080

Исполняемый файл (Windows)

Скачайте архив Elengrab (latest) и запустите файл elengrab-x.x.x-win-x64.exe.

Elengrab будет доступен по адресу http://localhost:8080

Другие платформы

Релизы — https://github.com/neosy/elengrab/releases
Docker Hub — https://hub.docker.com/r/neosy/elengrab


Зачем вообще нужен свой загрузчик с YouTube

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

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

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

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

Что такое Elengrab?

Elengrab — это YouTube downloader или лёгкий веб-интерфейс к yt-dlp.

Под капотом у него:

  • Минималистичный UI
  • Быстрый backend и frontend на Go с использованием HTMX
  • Минимум внешних зависимостей
  • Запуск в одну команду
  • Работает практически везде, где можно запустить Go-приложение или Docker-контейнер

Elengrab не пытается быть “комбайном”. Он просто скачивает видео или аудио с YouTube в выбранном формате. Лёгкий и быстрый self-hosted YouTube downloader для повседневных задач.

Основные возможности

  • Лёгкий и быстрый веб-интерфейс
  • Мобильное веб-приложение, работает на смартфоне и на компьютере
  • Светлая и тёмная тема
  • Скачивание видео в форматах mp4 (AV1, H.264, H.265) и webm
  • Скачивание только аудио в форматах mp3, m4a, opus, flac
  • Автоматический анализ ссылки
  • Поддержка параллельных загрузок (по умолчанию 3)
  • Отображение статусов загрузки
  • История скачивания
  • Очистка повторяющихся файлов

Исходный код: https://github.com/neosy/elengrab

Docker-контейнер: https://hub.docker.com/r/neosy/elengrab

Как работает

Всё максимально просто:

  • Вставляете ссылку на YouTube.
  • Выбираете формат и нажимаете Get.
  • Elengrab вызывает yt-dlp с нужными параметрами.
  • Наблюдаете за статусами загрузки.
  • Скачиваете файл напрямую через интерфейс.

Это всё — без лишних шагов и посредников!

Рис. 1. Elengrab self-hosted YouTube downloader


Локальный запуск под Windows

1. Скопировать архив и распаковать в любую папку

Ссылка на архив: Elengrab (latest)

Скачайте архив приложения, который включает:

  • elengrab-x.x.x-win-x64.exe — приложение с веб-сервером
  • ffmpeg.exe — инструмент для конвертации и обработки аудио/видео файлов
  • yt-dlp.exe — YouTube downloader и загрузчик видео/аудио с других сайтов

Утилиты ffmpeg.exe и yt-dlp.exe обязательны для работы Elengrab. Они могут находиться в любой папке Windows, но должны быть доступны системе (зарегистрированы в PATH или установлены отдельно).

Все релизы доступны на GitHub по ссылке.

2. Запустить веб-сервис

Запустить файл: elengrab-x.x.x-win-x64.exe

Окно запущенного приложения Elengrab

Рис. 2. Окно запущенного приложения Elengrab

3. Открыть приложение в веб-браузере

После запуска веб-сервиса приложение будет доступно по адресу http://localhost:8080

Elengrab - self-hosted YouTube downloader
Рис. 3. Начальная веб-страница Elengrab

4. Рабочая папка приложения

По умолчанию рабочая папка приложения находится по пути: %LOCALAPPDATA%\Elengrab
Пример: C:\Users\<текущий_пользователь>\AppData\Local\Elengrab

Структура папки:

  • assets — файлы статического контента для веб-сервера
  • downloads — файлы, загруженные веб-сервисом
  • sqlite — файлы базы данных SQLite
  • .env — файл с переменными окружения для настройки приложения

Запуск Elengrab через Docker

1. Подготовка

Убедитесь, что у вас установлен Docker. Опционально: хорошо иметь Docker Compose, если планируете использовать compose-конфигурацию.

2. Запуск Docker контейнера (одной командой)

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

Рис. 4. Elengrab после установки

Переменные окружения

ПеременнаяЗначение по умолчаниюОписание (RU)
LOG_LEVELwarnУровень логирования. Возможные значения: debug, info, warn, error.
SQLITE_DATA_DIRsqlite/dataПапка, где хранятся файлы базы данных SQLite.
SQLITE_BACKUPS_DIRsqlite/backupsПапка для резервных копий SQLite.
ELENGRAB_APP_DIR(не задано)Базовая папка приложения. Если не задано, по умолчанию: ~/.elengrab на Linux/macOS и %LOCALAPPDATA%\Elengrab на Windows.
ELENGRAB_DOWNLOADS_DIRdownloadsПапка для сохранения загруженных файлов внутри контейнера.
ELENGRAB_DOWNLOAD_WORKERS3Количество параллельных воркеров для обработки задач загрузки видео и аудио.
ELENGRAB_HISTORY_MODEglobalРежим отображения истории загрузок. Возможные значения: global, disabled, per_user.
ELENGRAB_MAINTENANCE_ENABLE_MOVE_UNMATCHED_FILESfalseВключает периодическую операцию перемещения файлов, которые отсутствуют в таблицах базы данных, из папки загрузок в .lost.
Таблица 1. Переменные окружения

План развития

Проект постепенно развивается и уже думаю над новыми возможностями:

  • Индикатор загрузки — чтобы видеть прогресс и состояние текущей загрузки
  • REST API — для тех, кто хочет интегрировать Elengrab в свои проекты
  • Раздельная загрузка по пользователям\сессиям — чтобы каждый мог управлять своими файлами независимо (выполнено)
  • Добавить поддержку MySQL и Redis — чтобы всё оставалось быстрым и стабильным, даже если одновременно пользуется много пользователей
  • Полная загрузка плейлистов — чтобы можно было скачивать сразу все видео из списка
  • Создать расширение для Chrome — позволит пользователям быстро отправлять URL ссылки в Elengrab

Elengrab будет становиться удобнее, а обновления не будут ломать уже работающий функционал.

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

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