gitmyhub

metube

Python ★ 14k updated 1d ago

Self-hosted video downloader for YouTube and other sites (web UI for yt-dlp)

MeTube is a self-hosted web interface for yt-dlp that lets you download videos and audio from YouTube and hundreds of other sites by pasting a link into a browser, no command line needed.

PythonDockeryt-dlpsetup: easycomplexity 2/5

MeTube is a self-hosted web interface for downloading video and audio from YouTube and many other sites. It is built on top of a popular command-line program called yt-dlp, which does the actual downloading. yt-dlp normally runs by typing commands in a terminal, which is awkward for many people. MeTube puts a simple web page in front of it: you run MeTube on your own machine or server, open it in a browser, paste a link, and it fetches the media for you. Self-hosted means you run it yourself rather than relying on someone else's website.

The README lists its main abilities. You can download videos, audio-only files, captions, and thumbnails from the browser interface. It can handle whole playlists and channels, with options for how the output is named and organized. It can also subscribe to channels and playlists, check them on a schedule for new uploads, and automatically add new items to the download queue.

The recommended way to run MeTube is with Docker, a system for packaging software so it runs the same way anywhere. The README shows a single Docker command, and an equivalent docker-compose file, that starts MeTube on port 8081 and points it at a folder on your computer where downloads should be saved.

Most of the README is a long reference of environment variables, which are settings you pass in when starting the container. These cover download behavior, such as how many downloads run at once and how long completed items stay in the list; storage, such as which folders hold videos, audio, temporary files, and saved state; file naming templates and extra options handed through to yt-dlp; and web server settings, such as the host, port, optional HTTPS, and cross-origin rules needed for browser extensions and bookmarklets. Each setting lists its default value. The result is a flexible downloader that you can tune to fit your own setup without touching the underlying tool directly.

Where it fits