Abstract violet and amber illustration representing MeTube, a self-hosted download queue interface

MeTube

MeTube

MeTube is a self-hosted web interface built around yt-dlp, the open-source engine behind most modern video-downloading tools. Paste a link into a browser tab, and this MeTube download queue tracks progress, then drops the finished file into a folder you control, no terminal required. Think of it less as a “downloader” in the loaded sense, and more as a personal archiving queue for video and audio you already have the right to keep offline.

License: MeTube ships under the GNU Affero General Public License v3.0 (AGPL-3.0), confirmed directly from the LICENSE file on GitHub, not assumed from a badge. There’s no dedicated marketing site separate from the GitHub repository, worth flagging since metube.io is an unrelated AI video-summary product that happens to share the name and has nothing to do with this project.

Quick facts: GitHub alexta69/metube, 13,500+ stars. Docker image ghcr.io/alexta69/metube (primary, per the official docs), mirrored on Docker Hub as alexta69/metube with 10 million+ pulls. Default port 8081.

What MeTube actually does

At its core, MeTube wraps yt-dlp, which can pull media from YouTube and dozens of other sites. Paste a URL into the web UI and MeTube fetches the video, audio-only track, captions, or a thumbnail, your choice, and adds it to a visible queue. A few things separate it from running yt-dlp by hand:

  • Playlist and channel downloads, with the same format options as a single video
  • Subscriptions: point MeTube at a channel once, and it checks periodically for new uploads on its own
  • A completed-downloads list you can browse, re-download from, or clear
  • Presets for format and quality, and yt-dlp’s advanced options, without editing a config file each time
  • Browser extensions for Chrome and Firefox, plus a bookmarklet, that send the page you’re on straight to your instance

Is MeTube legal?

Yes. The software itself is completely legal. MeTube is free, open-source code under AGPL-3.0, the same license family used by plenty of self-hosted tools on this site, and running it on your own server isn’t legally different from running any other program you installed yourself.

What actually matters, same as with any downloading tool, is what you point it at. Downloading is legal when you own the content, or have the rights or explicit permission to keep a copy, and it isn’t when you don’t. MeTube doesn’t change that equation either way; it’s just software for moving a file from a URL to a folder. A few cases that clearly land on the legal side:

  • Your own videos, uploaded to YouTube, Vimeo, or anywhere else, that you want a local backup of
  • Creative Commons or public-domain content, where the license already grants redistribution or offline copies
  • Anything a platform or creator explicitly lets you save offline: certain podcasts, videos with an offline option turned on, open courseware

If you’re not sure whether you have the right to keep a copy of something, a tool that makes downloading easier doesn’t resolve that. Treat MeTube like any archiving tool: fine for what you own or are allowed to keep, nothing else.

Installing MeTube with Docker

MeTube ships as a single container. No database, no second service to babysit. The official quick-start is one line:

docker run -d -p 8081:8081 -v /path/to/downloads:/downloads ghcr.io/alexta69/metube

Or as a docker-compose.yml:

services:
  metube:
    image: ghcr.io/alexta69/metube
    container_name: metube
    restart: unless-stopped
    ports:
      - "8081:8081"
    volumes:
      - /path/to/downloads:/downloads
  1. Create a folder on your server for finished downloads and note the path.
  2. Run the docker command above, or save the compose file and run docker compose up -d, with your actual path swapped in.
  3. Open your server’s address on port 8081 in a browser. No account or login screen by default.
  4. Paste a video URL into the Add box, pick a format, and watch it move from queue to completed.

Configuring MeTube

Most of MeTube’s behavior is set through environment variables rather than a settings page. The ones worth knowing up front:

  • DOWNLOAD_DIR / AUDIO_DOWNLOAD_DIR: where finished files land, defaults to /downloads in the container
  • MAX_CONCURRENT_DOWNLOADS: how many downloads run at once, default 3
  • OUTPUT_TEMPLATE: the filename pattern for downloads
  • YTDL_OPTIONS: a JSON object passed straight to yt-dlp for anything the UI skips
  • PUID / PGID: match these to your user if you hit permission errors on the mounted folder, a common first-run snag with Docker

Hardware: MeTube is genuinely light: it only downloads and occasionally remuxes, no decoding or transcoding, so a Raspberry Pi or low-power mini PC handles it easily. Your internet connection and disk space hit their limits long before the CPU does. Our homelab setup guide for beginners covers picking hardware for a first Docker project.

Don’t forward MeTube’s port straight to the internet. Put it behind a reverse proxy with authentication, or reach it over a mesh VPN instead, the same setup covered in our Jellyfin remote access guide. MeTube has no built-in login screen to fall back on.

MeTube vs. running yt-dlp directly

MeTubeyt-dlp (CLI)
InterfaceBrowser, from any device on your networkTerminal only
Queue & subscriptionsBuilt inManual, scripted yourself
Best forHousehold use, less technical usersPower users, scripting, one-off downloads
SetupOne Docker containerInstalling a Python package

MeTube doesn’t replace yt-dlp, it sits on top of it and stays current because it bundles yt-dlp’s engine underneath. Grabbing one video from a terminal you already have open is faster with plain yt-dlp. Wanting something the rest of the house can use without SSH access, or channels checked automatically, is where MeTube wins.

MeTube: pros and cons

  • Single container, no database, easy to back up: just the state files and your downloads folder
  • Subscriptions handle recurring downloads without cron jobs or scripts
  • Runs comfortably on low-power hardware
  • Nightly builds publish a new image whenever yt-dlp updates, so the engine rarely falls behind
  • No built-in user accounts; anyone who reaches the web UI can queue downloads, so access control is entirely on your reverse proxy or VPN
  • Depends on yt-dlp staying ahead of site changes, which occasionally lags a few days after a redesign
  • No mobile app; browser only, though it’s responsive on a phone

FAQ

Is MeTube free?

Yes, entirely. It’s open source under AGPL-3.0, with no paid tier, no account, and no feature gate.

Do I need to install yt-dlp separately?

No. MeTube bundles yt-dlp inside its Docker image, and maintainers publish nightly builds tracking new yt-dlp releases, so updating the container updates yt-dlp too.

Can MeTube send downloads straight into my Jellyfin or Plex library?

Not automatically, there’s no direct integration. Point MeTube’s download folder at a folder your media server already watches, and whatever lands there shows up next time that library scans. Our Jellyfin and Plex app pages cover setting up that library.

Does MeTube have a mobile app?

No official app, but the web UI works fine from a phone browser. Community extras like an iOS Shortcut and a Raycast extension exist for sending links over from other apps.

MeTube ends up being a small, single-purpose piece of a homelab: a queue and a web page in front of yt-dlp, nothing more. Our homelab setup guide for beginners covers the Docker basics it depends on, and Network & Security has more on locking down anything you expose. Docker & Containers covers most of what you’d run alongside it.