{"id":49369805,"url":"https://github.com/woahbase/alpine-youtubedl","last_synced_at":"2026-04-27T22:02:11.681Z","repository":{"id":201884897,"uuid":"149971553","full_name":"woahbase/alpine-youtubedl","owner":"woahbase","description":"Youtube-dl container Alpine Linux + Python2/S6","archived":false,"fork":false,"pushed_at":"2019-07-09T10:43:47.000Z","size":7,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-10-20T04:14:12.346Z","etag":null,"topics":["alpine","docker","ffmpeg","python2","youtube-dl"],"latest_commit_sha":null,"homepage":"https://woahbase.online/#/images/alpine-youtubedl","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/woahbase.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-09-23T09:51:46.000Z","updated_at":"2023-10-20T06:42:50.093Z","dependencies_parsed_at":null,"dependency_job_id":"0af0dc4a-eb90-4830-b44d-920c853d956c","html_url":"https://github.com/woahbase/alpine-youtubedl","commit_stats":null,"previous_names":["woahbase/alpine-youtubedl"],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/woahbase/alpine-youtubedl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woahbase%2Falpine-youtubedl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woahbase%2Falpine-youtubedl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woahbase%2Falpine-youtubedl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woahbase%2Falpine-youtubedl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/woahbase","download_url":"https://codeload.github.com/woahbase/alpine-youtubedl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woahbase%2Falpine-youtubedl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32356602,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"ssl_error","status_checked_at":"2026-04-27T20:07:00.910Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","ffmpeg","python2","youtube-dl"],"created_at":"2026-04-27T22:01:59.946Z","updated_at":"2026-04-27T22:02:11.674Z","avatar_url":"https://github.com/woahbase.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![build status][251]][232] [![commit][255]][231] [![version:x86_64][256]][235] [![size:x86_64][257]][235] [![version:armhf][258]][236] [![size:armhf][259]][236] [![version:armv7l][260]][237] [![size:armv7l][261]][237] [![version:aarch64][262]][238] [![size:aarch64][263]][238]\n\n## [Alpine-YoutubeDL][234]\n#### Container for Alpine Linux + Youtube-dl\n---\n\nThis [image][233] containerizes the [command line client][136] for\n[Youtube-dl][137] along with its [Python2][135] and [ffmpeg][138]\ndependencies.  Useful to download, extract and/or convert media\nurls from a number of sites.\n\nBased on [Alpine Linux][131] from my [alpine-python2][132] image with\nthe [s6][133] init system [overlayed][134] in it.\n\nThe image is tagged respectively for the following architectures,\n* **armhf**\n* **armv7l**\n* **aarch64**\n* **x86_64** (retagged as the `latest` )\n\n**non-x86_64** builds have embedded binfmt_misc support and contain the\n[qemu-user-static][105] binary that allows for running it also inside\nan x86_64 environment that has it.\n\n---\n#### Get the Image\n---\n\nPull the image for your architecture it's already available from\nDocker Hub.\n\n```\n# make pull\ndocker pull woahbase/alpine-youtubedl:x86_64\n```\n\n---\n#### Run\n---\n\nIf you want to run images for other architectures, you will need\nto have binfmt support configured for your machine. [**multiarch**][104],\nhas made it easy for us containing that into a docker container.\n\n```\n# make regbinfmt\ndocker run --rm --privileged multiarch/qemu-user-static:register --reset\n```\n\nWithout the above, you can still run the image that is made for your\narchitecture, e.g for an x86_64 machine..\n\nThis images already has a user `alpine` configured to drop\nprivileges to the passed `PUID`/`PGID` which is ideal if its used\nto run in non-root mode. That way you only need to specify the\nvalues at runtime and pass the `-u alpine` if need be. (run `id`\nin your terminal to see your own `PUID`/`PGID` values.)\n\nBefore you run..\n\n* Mount the downloads directory (where the audio/video files and\n  archive.txt will be) at `/home/alpine/downloads`. Mounts\n  `PWD/downloads` by default.\n\n* Youtube-dl runs under the user `alpine`.\n\n* A default for downloading video and audio are provided as\n  `VDLFLAGS` and `ADLFLAGS`. Modify as needed, the default does\n  quite a few things e.g add subs if available, add metadata,\n  embed thumbs and attributes, keep track of previously downloaded\n  media etc.\n\n* Pass the url to download with the parameter `URL`\n\nRunning `make` gets a shell.\n\n```\n# make\ndocker run --rm -it \\\n  --name docker_youtubedl --hostname youtubedl \\\n  -e PGID=1000 -e PUID=1000 \\\n  -c 256 -m 256m \\\n  -v $PWD:/home/alpine/project \\\n  -v /etc/localtime:/etc/localtime:ro \\\n  -v /etc/hosts:/etc/hosts:ro \\\n  --entrypoint /bin/bash \\\n  woahbase/alpine-youtubedl:x86_64\n```\n\nThe usual stuff. e.g list available formats with\n\n```\n# make info URL=\u003cyoutube link\u003e\ndocker run --rm -it \\\n  --name docker_youtubedl --hostname youtubedl \\\n  -e PGID=1000 -e PUID=1000 \\\n  -c 256 -m 256m \\\n  -v $PWD/downloads:/home/alpine/downloads \\\n  -v /etc/localtime:/etc/localtime:ro \\\n  -v /etc/hosts:/etc/hosts:ro \\\n  woahbase/alpine-youtubedl:x86_64 \\\n  -F \u003cyoutube link\u003e\n```\n\ndownload a video at the best a/v quality available\n\n```\n# make vdl URL=\u003cyoutube link\u003e\ndocker run --rm -it \\\n  --name docker_youtubedl --hostname youtubedl\\\n  -e PGID=1000 -e PUID=1000 \\\n  -c 256 -m 256m \\\n  -v $PWD/downloads:/home/alpine/downloads \\\n  -v /etc/localtime:/etc/localtime:ro \\\n  -v /etc/hosts:/etc/hosts:ro \\\n  woahbase/alpine-youtubedl:x86_64 \\\n  -v -i \\\n  --add-metadata \\\n  --audio-quality 0 \\\n  --all-subs \\\n  --convert-subs 'srt' \\\n  --download-archive '/home/alpine/downloads/ytdl.v.archive.txt' \\\n  --embed-subs \\\n  --format 'bestvideo+bestaudio/best' \\\n  --geo-bypass \\\n  --hls-prefer-ffmpeg \\\n  --merge-output-format 'mkv' \\\n  --no-cache-dir \\\n  --no-continue \\\n  --no-overwrites \\\n  --output '/home/alpine/downloads/%(title)s_%(id)s_%(resolution)s_%(fps)sfps_%(vcodec)s_%(abr)sKbps_%(acodec)s.%(ext)s' \\\n  --proxy '' \\\n  --retries 3 \\\n  --xattrs \\\n  --yes-playlist \\\n  \u003cyoutube link\u003e\n```\n\nextract just the audio file from the video at the best quality available\n\n```\n# make adl URL=\u003cyoutube link\u003e\ndocker run --rm -it \\\n  --name docker_youtubedl --hostname youtubedl\\\n  -e PGID=1000 -e PUID=1000 \\\n  -c 256 -m 256m \\\n  -v $PWD/downloads:/home/alpine/downloads \\\n  -v /etc/localtime:/etc/localtime:ro \\\n  -v /etc/hosts:/etc/hosts:ro \\\n  woahbase/alpine-youtubedl:x86_64 \\\n   -v -i \\\n   --add-metadata \\\n   --audio-quality 0 \\\n   --audio-format 'mp3' \\\n   --all-subs \\\n   --convert-subs 'srt' \\\n   --download-archive '/home/alpine/downloads/ytdl.a.archive.txt' \\\n   --embed-subs \\\n   --embed-thumbnail \\\n   --extract-audio \\\n   --format 'bestaudio[abr\u003e=128]/bestaudio/best' \\\n   --geo-bypass \\\n   --hls-prefer-ffmpeg \\\n   --no-cache-dir \\\n   --no-continue \\\n   --no-overwrites \\\n   --output '/home/alpine/downloads/%(title)s_%(id)s_%(abr)sKbps_%(acodec)s.%(ext)s' \\\n   --proxy '' \\\n   --retries 3 \\\n   --xattrs \\\n   --yes-playlist \\\n   \u003cyoutube link\u003e\n```\n\ncheckout all available options with\n\n```\n# make help\ndocker run --rm -it \\\n  --name docker_youtubedl --hostname youtubedl \\\n  -e PGID=1000 -e PUID=1000 \\\n  -c 256 -m 256m \\\n  -v $PWD/downloads:/home/alpine/downloads \\\n  -v /etc/localtime:/etc/localtime:ro \\\n  -v /etc/hosts:/etc/hosts:ro \\\n  woahbase/alpine-youtubedl:x86_64 \\\n  --help\n```\n\nStop the container with a timeout, (defaults to 2 seconds)\n\n```\n# make stop\ndocker stop -t 2 docker_youtubedl\n```\n\nRemoves the container, (always better to stop it first and `-f`\nonly when needed most)\n\n```\n# make rm\ndocker rm -f docker_youtubedl\n```\n\nRestart the container with\n\n```\n# make restart\ndocker restart docker_youtubedl\n```\n\n---\n#### Shell access\n---\n\nGet a shell inside a already running container,\n\n```\n# make debug\ndocker exec -it docker_youtubedl /bin/bash\n```\n\nset user or login as root,\n\n```\n# make rdebug\ndocker exec -u root -it docker_youtubedl /bin/bash\n```\n\nTo check logs of a running container in real time\n\n```\n# make logs\ndocker logs -f docker_youtubedl\n```\n\n---\n### Development\n---\n\nIf you have the repository access, you can clone and\nbuild the image yourself for your own system, and can push after.\n\n---\n#### Setup\n---\n\nBefore you clone the [repo][231], you must have [Git][101], [GNU make][102],\nand [Docker][103] setup on the machine.\n\n```\ngit clone https://github.com/woahbase/alpine-youtubedl\ncd alpine-youtubedl\n```\nYou can always skip installing **make** but you will have to\ntype the whole docker commands then instead of using the sweet\nmake targets.\n\n---\n#### Build\n---\n\nYou need to have binfmt_misc configured in your system to be able\nto build images for other architectures.\n\nOtherwise to locally build the image for your system.\n[`ARCH` defaults to `x86_64`, need to be explicit when building\nfor other architectures.]\n\n```\n# make ARCH=x86_64 build\n# sets up binfmt if not x86_64\ndocker build --rm --compress --force-rm \\\n  --no-cache=true --pull \\\n  -f ./Dockerfile_x86_64 \\\n  --build-arg DOCKERSRC=woahbase/alpine-python2:x86_64  \\\n  --build-arg PGID=1000 \\\n  --build-arg PUID=1000 \\\n  -t woahbase/alpine-youtubedl:x86_64 \\\n  .\n```\n\nTo check if its working..\n\n```\n# make ARCH=x86_64 test\ndocker run --rm -it \\\n  --name docker_youtubedl --hostname youtubedl \\\n  -e PGID=1000 -e PUID=1000 \\\n  woahbase/alpine-youtubedl:x86_64 \\\n  --version\n```\n\nAnd finally, if you have push access,\n\n```\n# make ARCH=x86_64 push\ndocker push woahbase/alpine-youtubedl:x86_64\n```\n\n---\n### Maintenance\n---\n\nSources at [Github][106]. Built at [Travis-CI.org][107] (armhf / x64 builds). Images at [Docker hub][108]. Metadata at [Microbadger][109].\n\nMaintained by [WOAHBase][204].\n\n[101]: https://git-scm.com\n[102]: https://www.gnu.org/software/make/\n[103]: https://www.docker.com\n[104]: https://hub.docker.com/r/multiarch/qemu-user-static/\n[105]: https://github.com/multiarch/qemu-user-static/releases/\n[106]: https://github.com/\n[107]: https://travis-ci.org/\n[108]: https://hub.docker.com/\n[109]: https://microbadger.com/\n\n[131]: https://alpinelinux.org/\n[132]: https://hub.docker.com/r/woahbase/alpine-python2\n[133]: https://skarnet.org/software/s6/\n[134]: https://github.com/just-containers/s6-overlay\n[135]: https://www.python.org\n[136]: https://github.com/rg3/youtube-dl/\n[137]: https://rg3.github.io/youtube-dl/\n[138]: https://www.ffmpeg.org/\n\n[201]: https://github.com/woahbase\n[202]: https://travis-ci.org/woahbase/\n[203]: https://hub.docker.com/u/woahbase\n[204]: https://woahbase.online/\n\n[231]: https://github.com/woahbase/alpine-youtubedl\n[232]: https://travis-ci.org/woahbase/alpine-youtubedl\n[233]: https://hub.docker.com/r/woahbase/alpine-youtubedl\n[234]: https://woahbase.online/#/images/alpine-youtubedl\n[235]: https://microbadger.com/images/woahbase/alpine-youtubedl:x86_64\n[236]: https://microbadger.com/images/woahbase/alpine-youtubedl:armhf\n[237]: https://microbadger.com/images/woahbase/alpine-youtubedl:armv7l\n[238]: https://microbadger.com/images/woahbase/alpine-youtubedl:aarch64\n\n[251]: https://travis-ci.org/woahbase/alpine-youtubedl.svg?branch=master\n\n[255]: https://images.microbadger.com/badges/commit/woahbase/alpine-youtubedl.svg\n\n[256]: https://images.microbadger.com/badges/version/woahbase/alpine-youtubedl:x86_64.svg\n[257]: https://images.microbadger.com/badges/image/woahbase/alpine-youtubedl:x86_64.svg\n\n[258]: https://images.microbadger.com/badges/version/woahbase/alpine-youtubedl:armhf.svg\n[259]: https://images.microbadger.com/badges/image/woahbase/alpine-youtubedl:armhf.svg\n\n[260]: https://images.microbadger.com/badges/version/woahbase/alpine-youtubedl:armv7l.svg\n[261]: https://images.microbadger.com/badges/image/woahbase/alpine-youtubedl:armv7l.svg\n\n[262]: https://images.microbadger.com/badges/version/woahbase/alpine-youtubedl:aarch64.svg\n[263]: https://images.microbadger.com/badges/image/woahbase/alpine-youtubedl:aarch64.svg\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoahbase%2Falpine-youtubedl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwoahbase%2Falpine-youtubedl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoahbase%2Falpine-youtubedl/lists"}