{"id":13821637,"url":"https://github.com/qdm12/youtube-dl-docker","last_synced_at":"2025-04-30T11:33:57.048Z","repository":{"id":55612906,"uuid":"121890479","full_name":"qdm12/youtube-dl-docker","owner":"qdm12","description":"Download with youtube-dl using command line arguments or a configuration file + Automated updates","archived":false,"fork":false,"pushed_at":"2023-07-09T13:20:01.000Z","size":186,"stargazers_count":48,"open_issues_count":0,"forks_count":19,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-19T01:32:10.289Z","etag":null,"topics":["alpine","docker","docker-youtube-dl","ffmpeg","youtube-dl"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/qmcgaw/youtube-dl-alpine/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qdm12.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":["qdm12"]}},"created_at":"2018-02-17T20:37:17.000Z","updated_at":"2025-04-18T16:15:54.000Z","dependencies_parsed_at":"2024-01-15T15:47:56.776Z","dependency_job_id":"e2174cdc-2d64-49ec-96cd-3d6680f5601a","html_url":"https://github.com/qdm12/youtube-dl-docker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qdm12%2Fyoutube-dl-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qdm12%2Fyoutube-dl-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qdm12%2Fyoutube-dl-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qdm12%2Fyoutube-dl-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qdm12","download_url":"https://codeload.github.com/qdm12/youtube-dl-docker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251691765,"owners_count":21628386,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alpine","docker","docker-youtube-dl","ffmpeg","youtube-dl"],"created_at":"2024-08-04T08:01:25.143Z","updated_at":"2025-04-30T11:33:57.007Z","avatar_url":"https://github.com/qdm12.png","language":"Shell","funding_links":["https://github.com/sponsors/qdm12","https://paypal.me/qmcgaw"],"categories":["Shell"],"sub_categories":[],"readme":"# Docker Youtube-DL Alpine\n\n*Download with [**yt-dlp**](https://github.com/yt-dlp/yt-dlp) using command line arguments or configuration files*\n\n[![Docker Youtube-DL](https://github.com/qdm12/youtube-dl-docker/raw/master/title.png)](https://hub.docker.com/r/qmcgaw/youtube-dl-alpine/)\n\n[![Build status](https://github.com/qdm12/youtube-dl-docker/actions/workflows/ci.yml/badge.svg)](https://github.com/qdm12/youtube-dl-docker/actions/workflows/ci.yml/badge.svg)\n[![Docker Pulls](https://img.shields.io/docker/pulls/qmcgaw/youtube-dl-alpine.svg)](https://hub.docker.com/r/qmcgaw/youtube-dl-alpine)\n[![Docker Stars](https://img.shields.io/docker/stars/qmcgaw/youtube-dl-alpine.svg)](https://hub.docker.com/r/qmcgaw/youtube-dl-alpine)\n[![Docker Automated](https://img.shields.io/docker/automated/qmcgaw/youtube-dl-alpine.svg)](https://hub.docker.com/r/qmcgaw/youtube-dl-alpine)\n\n[![GitHub last commit](https://img.shields.io/github/last-commit/qdm12/youtube-dl-docker.svg)](https://github.com/qdm12/youtube-dl-docker/issues)\n[![GitHub commit activity](https://img.shields.io/github/commit-activity/y/qdm12/youtube-dl-docker.svg)](https://github.com/qdm12/youtube-dl-docker/issues)\n[![GitHub issues](https://img.shields.io/github/issues/qdm12/youtube-dl-docker.svg)](https://github.com/qdm12/youtube-dl-docker/issues)\n\n[![Donate PayPal](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://paypal.me/qmcgaw)\n\n## Features\n\n- Works with command line arguments to *youtube-dl*\n- Compatible with AMD64, 386, ARM v6/v7/v8 CPU architectures\n- Small Docker image based on\n  - [Alpine 3.18](https://alpinelinux.org)\n  - [Youtube-dl](https://github.com/yt-dlp/yt-dlp)\n  - [ffmpeg 6.0](https://pkgs.alpinelinux.org/package/v3.18/community/x86_64/ffmpeg)\n  - [Ca-Certificates](https://pkgs.alpinelinux.org/package/v3.18/main/x86_64/ca-certificates)\n  - [Python 3.11.4](https://pkgs.alpinelinux.org/package/v3.18/main/x86_64/python3)\n- The container updates youtube-dl at launch if `-e AUTOUPDATE=yes`\n- Docker healthcheck downloading `https://duckduckgo.com` with `wget` every 10 minutes\n- You can receive a notification on your Android device through Gotify when the *youtube-dl* has finished\n\n## Setup\n\n1. Run the container with\n\n    ```bash\n    docker run -d -v $(pwd)/yourdir:/downloads qmcgaw/youtube-dl-alpine \\\n    https://www.youtube.com/watch?v=HagVnWAeGcM \\\n    -o \"/downloads/%(title)s.%(ext)s\"\n    ```\n\n    or use [docker-compose.yml](https://github.com/qdm12/youtube-dl-docker/blob/master/docker-compose.yml) with\n\n    ```bash\n    docker-compose up -d\n    ```\n\n1. See the [youtube-dl command line options](https://github.com/rg3/youtube-dl/blob/master/README.md#options)\n1. By default the container runs as user ID `1000` in order to not run as `root`.\nIf you encounter permission issues with your bind mounted `yourdir` directory, either:\n    - Change the ownership and permission of your directory to match user id `1000`:\n\n        ```sh\n        chown 1000 yourdir \u0026\u0026 chmod 700 yourdir\n        ```\n\n    - Run the container with the user ID owning `yourdir`, for example with the Docker flag `--user=1030`.\n\n### Environment variables\n\n| Environment variable | Default | Description |\n| --- | --- | --- |\n| `AUTOUPDATE` | `no` | Updates youtube-dl to the latest version at launch |\n| `GOTIFYURL` |  | Gotify server URL address (i.e. `http://192.168.1.5:8000` or `https://a.com/gotify`) |\n| `GOTIFYTOKEN` |  | Gotify server Token |\n\n### Downloads directory permission issues\n\nYou can either:\n\n- Change the ownership and permissions of `./downloads` on your host with:\n\n    ```sh\n    chown 1000 -R ./downloads\n    chmod 700 ./downloads\n    chmod -R 600 ./downloads/*\n    ```\n\n- Launch the container as `root` user using `--user=root`\n\n### Authenticate with Netrc file\n\nTo authenticate you can bind mount a [`.netrc` file](https://github.com/ytdl-org/youtube-dl/blob/master/README.md#authentication-with-netrc-file).\n\nYou should, on your host, set the right ownership and permissions as follow:\n\n```sh\nchown 1000:1000 .netrc\nchmod 600 .netrc\n```\n\nAnd then bind mount it with `-v \"$(pwd)/.netrc:/.netrc:ro\"` and youtube-dl will pick it up.\n\n## TODOs\n\n- [ ] Healthcheck to check ydl logs\n- [ ] Colors in terminal\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqdm12%2Fyoutube-dl-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqdm12%2Fyoutube-dl-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqdm12%2Fyoutube-dl-docker/lists"}