selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

youtube-dl logo

Self-host youtube-dl

Automated yt-dlp Docker image for YouTube subscriptions

ReleaseOpen SourceMIT
Updated4 months ago
LanguagePython
Setup difficultyEasy
Stars
402
Port
8080 (Web UI)
Docker
jeeaaasustest/youtube-dl
Install with Docker

What is youtube-dl?

Jeeaaasus - youtube-dl is a Docker image that wraps yt-dlp to automatically download videos from YouTube subscriptions, watch later playlists, and custom channel lists. It includes a web UI for managing configuration files, triggering downloads, and viewing logs. The container can run on a schedule or once, supports SponsorBlock, subtitles, metadata embedding, and quality selection up to 4K. It uses cookies for authentication to access private content. Configuration is done via environment variables and config files in a mounted volume.

Should you self-host youtube-dl?

youtube-dl scores 51/100 on selfhost.directory (how scoring works) and ranks #6 of 12 in Video. It has 402 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is easy: most people get it running in one sitting. An official Docker image is available. It is MIT-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is cap (79/100, 23 977 stars). It scores higher overall, so compare the two before you pick. See youtube-dl vs cap side by side.

Features

  • Automated YouTube subscription downloads
  • Auto-update container
  • Cookie-based Authentication
  • Custom channel list
  • Download archive
  • Metadata Embedding
  • Pre/post execution scripts
  • Quality selection
  • Scheduled interval downloads
  • Sponsorblock Integration
  • Subtitle embedding
  • Watch Later playlist download
  • Web UI

youtube-dl README

How to install youtube-dl

Install youtube-dl with Docker

docker run -d
--name youtube-dl
-v youtube-dl_data:/config
-v :/downloads
-e youtubedl_subscriptions=true
-e youtubedl_watchlater=true
-e youtubedl_quality=2160
-e youtubedl_webui=true
-p 8080:8080
jeeaaasustest/youtube-dl

Requires cookies.txt for authentication to download subscriptions/watch later

How to configure youtube-dl

  • youtubedl_debugtrue (false)Used to enable verbose mode.

    Used to enable verbose mode.

  • youtubedl_interval1h (3h) 12h 3d falseIf you want to change the default download interval. This can be any value compatible with gnu sleep or if set to false, the container will shutoff after executing. A low interval value risks you being ip-banned by YouTube. 1 hour, (3 hours), 12 hours, 3 days, false.

    If you want to change the default download interval. This can be any value compatible with gnu sleep or if set to false, the container will shutoff after executing. A low interval value risks you being ip-banned by YouTube. 1 hour, (3 hours), 12 hours, 3 days, false.

  • youtubedl_lockfiletrue (false)Used to enable youtubedl-running, youtubedl-completed files in downloads directory. Useful for external scripts.

    Used to enable youtubedl-running, youtubedl-completed files in downloads directory. Useful for external scripts.

  • youtubedl_quality720 (1080) 1440 2160If you want to change the default download resolution. 720p, (1080p), 1440p, 4k.

    If you want to change the default download resolution. 720p, (1080p), 1440p, 4k.

  • youtubedl_subscriptionstrue (false)If you want to download all your subscriptions. Authentication is required.

    If you want to download all your subscriptions. Authentication is required.

  • youtubedl_watchlatertrue (false)If you want to download your Watch Later playlist. Authentication is required.

    If you want to download your Watch Later playlist. Authentication is required.

  • youtubedl_webuitrue (false)Used to enable webui feature with the ability to manage configuration files, view logs and perform manual downloads.

    Used to enable webui feature with the ability to manage configuration files, view logs and perform manual downloads.

  • youtubedl_webuipath(/)Set if you wish to change the path the webui is served from e.g. if you want to put the ui behind a path based reverse proxy.

    Set if you wish to change the path the webui is served from e.g. if you want to put the ui behind a path based reverse proxy.

  • youtubedl_webuiport(8080)If you need to change the webui port.

    If you need to change the webui port.

More in Video

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…