youtube-dl-docker

Download with youtube-dl using command line arguments or a configuration file + Automated updates

MIT License

Stars
46

Docker Youtube-DL Alpine

Download with yt-dlp using command line arguments or configuration files

Features

  • Works with command line arguments to youtube-dl
  • Compatible with AMD64, 386, ARM v6/v7/v8 CPU architectures
  • Small Docker image based on
  • The container updates youtube-dl at launch if -e AUTOUPDATE=yes
  • Docker healthcheck downloading https://duckduckgo.com with wget every 10 minutes
  • You can receive a notification on your Android device through Gotify when the youtube-dl has finished

Setup

  1. Run the container with

    docker run -d -v $(pwd)/yourdir:/downloads qmcgaw/youtube-dl-alpine \
    https://www.youtube.com/watch?v=HagVnWAeGcM \
    -o "/downloads/%(title)s.%(ext)s"
    

    or use docker-compose.yml with

    docker-compose up -d
    
  2. See the youtube-dl command line options

  3. By default the container runs as user ID 1000 in order to not run as root. If you encounter permission issues with your bind mounted yourdir directory, either:

    • Change the ownership and permission of your directory to match user id 1000:

      chown 1000 yourdir && chmod 700 yourdir
      
    • Run the container with the user ID owning yourdir, for example with the Docker flag --user=1030.

Environment variables

Environment variable Default Description
AUTOUPDATE no Updates youtube-dl to the latest version at launch
GOTIFYURL Gotify server URL address (i.e. http://192.168.1.5:8000 or https://a.com/gotify)
GOTIFYTOKEN Gotify server Token

Downloads directory permission issues

You can either:

  • Change the ownership and permissions of ./downloads on your host with:

    chown 1000 -R ./downloads
    chmod 700 ./downloads
    chmod -R 600 ./downloads/*
    
  • Launch the container as root user using --user=root

Authenticate with Netrc file

To authenticate you can bind mount a .netrc file.

You should, on your host, set the right ownership and permissions as follow:

chown 1000:1000 .netrc
chmod 600 .netrc

And then bind mount it with -v "$(pwd)/.netrc:/.netrc:ro" and youtube-dl will pick it up.

TODOs

  • Healthcheck to check ydl logs
  • Colors in terminal
Badges
Extracted from project README
Docker Youtube-DL Build status Docker Pulls Docker Stars Docker Automated GitHub last commit GitHub commit activity GitHub issues Donate PayPal
Related Projects