Об этом проекте

TubeSync — это self-hosted PVR (персональный видеорекордер) для YouTube, описываемый как аналог Sonarr, но для YouTube, со встроенным клиентом загрузки. Он синхронизирует каналы и плейлисты YouTube в локальные каталоги и может обновлять медиасервер после загрузки медиа. Внутри это веб-интерфейс-обёртка вокруг yt-dlp и ffmpeg с планировщиком задач. Заявленные отличия — полноценный PVR-опыт для обновления медиасерверов и лучший выбор форматов медиа. Также реализовано постепенное повторение неудачных попыток с таймерами back-off, чтобы неудачные загрузки повторялись в течение длительного периода. Развёртывание ориентировано на контейнеры: образ контейнера публикуется по адресу ghcr.io/meeb/tubesync:latest с поддержкой amd64 и arm64, а также документированы примеры Docker или Podman вместе с Docker Compose. Конфигурация и загрузки монтируются как тома (/config и /downloads), с переменными окружения PUID, PGID и TZ. Доступна опциональная HTTP basic-аутентификация через HTTP_USER и HTTP_PASS. Загруженные медиа организуются в подкаталоги video и audio внутри каталога загрузок, при этом медиа только с аудио попадает в audio. Администрирование выполняется через веб-интерфейс на порту 4848. Источники добавляются по URL с валидацией, а параметры для каждого источника включают частоту индексации и качество загрузки. Индексация и загрузка выполняются автоматически по запланированным задачам, видны на вкладке задач, а медиа появляется на вкладке медиа. В качестве медиасерверов поддерживаются Plex и Jellyfin. README предупреждает о частоте индексации и индексации очень больших каналов, советуя длинные интервалы и вежливую, минимальную индексацию и одновременные загрузки, чтобы избежать throttling или блокировок. Расширенные переменные окружения охватывают настройки Django, префикс URL, режим отладки, разрешённые хосты, ограничение высоты видео, переименование источников, префиксы каталогов, уменьшение метаданных, воркеры gunicorn, хост/порт прослушивания и опциональное подключение к внешней базе данных. Документирован ручной путь установки Django без контейнеров, а также набор тестов, запускаемый через manage.py test.