jim60105 / docker-yt-dlp

This is the docker image for yt-dlp from the community. (Dockerfile, CI image build)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

docker-yt-dlp

CodeFactor GitHub Workflow Status (with event)

This is the docker image for yt-dlp/yt-dlp: A youtube-dl fork with additional features and fixes from the community.

Get the Dockerfile at GitHub, or pull the image from ghcr.io or quay.io.

Usage Command

Mount the current directory as /download and run yt-dlp with additional input arguments.
The downloaded files will be saved to where you run the command.

docker run -it -v ".:/download" ghcr.io/jim60105/yt-dlp [OPTIONS] [--] URL [URL...]

The [OPTIONS], [URL...] placeholder should be replaced with the options and arguments for yt-dlp. Check the yt-dlp README for more information.

You can find all available tags at ghcr.io or quay.io.

Building the Docker Image

Dockerfiles

This repository contains four Dockerfiles for building Docker images based on different base images:

Dockerfile Base Image
Dockerfile Alpine official image
alpine.Dockerfile Python official image 3.12-alpine
ubi.Dockerfile Red Hat Universal Base Image 9 Minimal
distroless.Dockerfile distroless-python

Build Arguments

The alpine.Dockerfile, ubi.Dockerfile, ans distroless.Dockerfile are built using a build argument called BUILD_VERSION. This argument represents the release version of yt-dlp, such as 2023.12.30 or 2023.11.16.

It is important to note that the Dockerfile always builds with the latest apk package source, so it can't set the build version explicitly.

Note

  • The apk edge branch follows the latest release of yt-dlp.
  • The alpine.Dockerfile installs yt-dlp from pip source, so the image size may slightly different compared to the Dockerfile even when they have the same version.

Build Command

docker build -t yt-dlp .
docker build --build-arg BUILD_VERSION=2023.12.30 -f ./alpine.Dockerfile -t yt-dlp:alpine .
docker build --build-arg BUILD_VERSION=2023.12.30 -f ./ubi.Dockerfile -t yt-dlp:ubi .
docker build --build-arg BUILD_VERSION=2023.12.30 -f ./distroless.Dockerfile -t yt-dlp:distroless .

Tip

I've notice that that both the UBI version and the Distroless version offer no advantages over the Alpine version. So please use the Alpine version unless you have specific reasons not to. All of these base images are great, some of them were simply not that suitable for our project.

Note

If you are using an earlier version of the docker client, it is necessary to enable the BuildKit mode when building the image. This is because I used the COPY --link feature which enhances the build performance and was introduced in Buildx v0.8.
With the Docker Engine 23.0 and Docker Desktop 4.19, Buildx has become the default build client. So you won't have to worry about this when using the latest version.

LICENSE

Note

The main program, yt-dlp/yt-dlp, is distributed under Unlicense license.
Please consult their repository for access to the source code and licenses.
The following is the license for the Dockerfiles and CI workflows in this repository.

gplv3

GNU GENERAL PUBLIC LICENSE Version 3

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Caution

A GPLv3 licensed Dockerfile means that you MUST distribute the source code with the same license, if you

  • Re-distribute the image. (You can simply point to this GitHub repository if you doesn't made any code changes.)
  • Distribute a image that uses code from this repository.
  • Or distribute a image based on this image. (FROM ghcr.io/jim60105/yt-dlp in your Dockerfile)

"Distribute" means to make the image available for other people to download, usually by pushing it to a public registry. If you are solely using it for your personal purposes, this has no impact on you.

Please consult the LICENSE for more details.

About

This is the docker image for yt-dlp from the community. (Dockerfile, CI image build)

License:GNU General Public License v3.0


Languages

Language:Dockerfile 100.0%