Skip to content

TestOpsFeng/metube

 
 

Repository files navigation

MeTube

Web GUI for youtube-dl with playlist support. Allows you to download videos from YouTube and dozens of other sites (https://ytdl-org.github.io/youtube-dl/supportedsites.html).

screenshot1

Run using Docker

docker run -d -p 8081:8081 -v /path/to/downloads:/downloads --user 1001:1001 alexta69/metube

Run using docker-compose

version: "3"
services:
  metube:
    image: alexta69/metube
    container_name: metube
    restart: unless-stopped
    user: "1001:1001"
    ports:
      - "8081:8081"
    volumes:
      - /path/to/downloads:/downloads

Configuration via environment variables

Certain values can be set via environment variables, using the -e parameter on the docker command line, or the environment: section in docker-compose.

  • DOWNLOAD_DIR: path to where the downloads will be saved. Defaults to /downloads in the docker image, and . otherwise.
  • URL_PREFIX: base path for the web server (for use when hosting behind a reverse proxy). Defaults to /.

Running behind a reverse proxy

Use the following nginx configuration to run MeTube behind a reverse proxy. The extra proxy_set_header directives are there to make WebSocket work. Don't forget to set the URL_PREFIX environment variable to the correct value as well.

location /metube/ {
        proxy_pass https://metube:8081;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
}

Build and run locally

Make sure you have node.js and Python 3.8 installed.

cd metube
# install Angular and build the UI
npm install
node_modules/.bin/ng build
# install python dependencies
pip3 install pipenv
pipenv install
# run
python3 app/main.py

A Docker image can be built locally (it will build the UI too):

docker build -t metube .

Development notes

  • The above works on Windows as well as Linux.
  • If you're running the server in VSCode, your downloads will go to your user's Downloads folder (this is configured via the environment in .vscode/launch.json).

About

youtube-dl web UI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 40.5%
  • Python 32.5%
  • HTML 19.6%
  • JavaScript 2.9%
  • Sass 2.6%
  • Dockerfile 1.9%