About this project
TubeSync is a self-hosted PVR (personal video recorder) for YouTube, described as similar to Sonarr but for YouTube, with a built-in download client. It synchronizes channels and playlists from YouTube into local directories and can update a media server once media is downloaded.
Internally it is a web interface wrapper around yt-dlp and ffmpeg with a task scheduler. Its stated differentiators are a full PVR experience for updating media servers and better selection of media formats. It also implements gradual retrying of failures with back-off timers so failed downloads are retried over an extended period.
Deployment is container-first: a container image is published at ghcr.io/meeb/tubesync:latest, with amd64 and arm64 support, and Docker or Podman plus Docker Compose examples are documented. Configuration and downloads are mounted as volumes (/config and /downloads), with PUID, PGID and TZ environment variables. Optional HTTP basic authentication is available via HTTP_USER and HTTP_PASS.
Downloaded media is organized into video and audio subdirectories under the download directory, with audio-only media going to audio. Administration is done through the web interface on port 4848. Sources are added by URL with validation, and per-source options include index frequency and download quality. Indexing and downloading run automatically on scheduled tasks, visible on a tasks tab, and media appears in a media tab. Plex and Jellyfin are supported as media servers.
The README warns about index frequency and indexing very large channels, advising long intervals and polite, minimal indexing and concurrent downloads to avoid throttling or bans. Advanced environment variables cover Django settings, URL prefix, debug mode, allowed hosts, video height cutoff, source renaming, directory prefixes, metadata shrinking, gunicorn workers, listen host/port, and an optional external database connection. A manual non-containerized Django installation path is documented, along with a test suite runnable via manage.py test.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.