Skip to content

Recorder-moe/ytarchive

 
 

Repository files navigation

docker-ytarchive

This repository contains Dockerfiles for Kethsar/ytarchive: A tool for archiving YouTube livestreams from the start from the community.

Get the Dockerfile on GitHub, or pull the image from ghcr.io or Quay.io.

These Dockerfiles are created to construct images using three different base images: scratch, Red Hat UBI (Universal Base Image), and Google Distroless.

We used scratch image as the default.

Available Pre-built Image

GitHub last commit (branch) GitHub Workflow Status (with event)

Note

We run an auto update CI weekly to make the latest image up to date with the Kethsar/ytarchive master branch.

docker run -it -v ".:/download" ghcr.io/jim60105/ytarchive:latest     [OPTIONS] [url] [quality]
docker run -it -v ".:/download" ghcr.io/jim60105/ytarchive:v0.4.0     [OPTIONS] [url] [quality]
docker run -it -v ".:/download" ghcr.io/jim60105/ytarchive:v0.3.2-ubi [OPTIONS] [url] [quality]

Building the Docker Image

Build Arguments

The Dockerfile accepts one build argument: VERSION. This argument is used to specify the version of ytarchive that will be installed in the Docker image. You can use the tags from the ytarchive repository to indicate the version, or you can use the branch name to build a specific branch. Check out the ytarchive releases for the available tags and the ytarchive branches for building a particular branch.

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

Dockerfile Base Image
Dockerfile scratch
ubi.Dockerfile Red Hat UBI9 micro
distroless.Dockerfile Google Distroless static-debian12

Please build them like this:

docker build -f Dockerfile            --build-arg VERSION=v0.4.0 -t ytarchive:v0.4.0 .
docker build -f ubi.Dockerfile        --build-arg VERSION=master -t ytarchive:ubi .
docker build -f distroless.Dockerfile --build-arg VERSION=v0.3.2 -t ytarchive:v0.3.2-distroless .

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.

Usage Command

docker run -it -v ".:/download" ghcr.io/jim60105/ytarchive [OPTIONS] [url] [quality]

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

The [OPTIONS], [url], and [quality] placeholders should be replaced with the options and arguments for ytarchive. Check the ytarchive README for more information.

License

The main program, ytarchive, is distributed under MIT.
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.

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/ytarchive 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.

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/.

Packages

 
 
 

Languages

  • Dockerfile 100.0%