MeTube — Self-hosted YouTube downloader with a sleek web interface

📆 · ⏳ 3 min read · ·

Introduction

Continuing our series on self-hosted applications, today we’ll explore MeTube, a powerful self-hosted YouTube downloader. If you’ve ever wanted to archive your favorite YouTube videos or download content for offline viewing, MeTube provides an elegant solution with its user-friendly web interface.

While there are many YouTube downloaders available online, most come with limitations, ads, or potential security risks. MeTube solves these issues by giving you complete control over your downloads while providing a clean, ad-free experience.

What is MeTube?

MeTube ↗️ is a web frontend for youtube-dl/yt-dlp ↗️, popular command-line tools for downloading videos from YouTube and other platforms. It wraps these powerful tools in a beautiful web interface, making it accessible to users who might not be comfortable with command-line operations.

Key features include:

  • Support for multiple video quality options
  • Audio-only download capability
  • Batch download support
  • Download queue management
  • Support for 1000+ websites ↗️ beyond YouTube
  • Progress tracking for downloads
  • Mobile-friendly interface

Setup MeTube with Docker

Setting up MeTube is straightforward using Docker. Create a new directory for MeTube and create a docker-compose.yml file with the following content:

services:
metube:
image: alexta69/metube:latest
container_name: metube
ports:
- '8081:8081'
volumes:
- ./downloads:/downloads
- ./audio-downloads:/audio-downloads # Optional, if you want to separate audio downloads
environment:
- UID=1000
- GID=1000
- TZ=Asia/Kolkata
- AUDIO_DOWNLOAD_DIR=/audio-downloads # Optional, if you want to separate audio downloads
restart: unless-stopped

More options can be found in the MeTube GitHub repository ↗️, however the defaults should work fine for most users.

Ensure that the UID and GID match the user and group IDs of the user you want to run the container as. Find the user and group IDs by running id <username>.

Finally, ensure that the AUDIO_DOWNLOAD_DIR directory exists and is writable by the user the container runs as if you want to separate audio downloads.

With that, we can start the container using docker compose up -d. The web interface will be available at http://<your-server-ip>:8081. (Note: The port can be changed by modifying the ports section in the docker-compose.yml file.)

MeTube web interface
MeTube web interface

Using MeTube

Using MeTube is incredibly simple:

  1. Open the web interface in your browser
  2. Paste a video URL in the input field
  3. Select your preferred format and quality
  4. Click download

You can also install few third party browser extensions (Google Chrome ↗️ / Firefox ↗️) to make it easier to download videos.

💡

Friendly Disclaimer

Since using MeTube essentially means you are downloading videos from YouTube (or other supported platforms), you should be aware of YouTube’s terms of service ↗️ and make sure you are in compliance with them. I am not responsible for any copyright violations.

Conclusion

MeTube is an excellent addition to any self-hosted setup, providing a reliable and user-friendly way to download videos from YouTube and other platforms. Its clean interface and powerful features make it a superior alternative to online video downloaders.

Have you tried MeTube or similar self-hosted video downloaders? I’d love to hear about your experience in the comments below. Feel free to reach out to me on Twitter ↗️ / Reddit ↗️ if you have any questions or in the comments below.

Happy downloading!

You may also like

  • # homelab# selfhosted

    Speedtest Tracker — Monitor your internet speed with beautiful graphs

    Speedtest Tracker is a self-hosted internet speed monitoring tool that helps you track your ISP's performance over time. Perfect for ensuring you're getting the speeds you're paying for.

  • # homelab# selfhosted

    Ntfy — Self-hosted push notification server for all your services

    Ntfy is a simple yet powerful pub-sub notification service that lets you send push notifications to your phone or desktop from any of your self-hosted services. Perfect for monitoring, alerts, and automation in your homelab.

  • # homelab# selfhosted# networking

    Setup Caddy with automatic SSL certificates with Cloudflare

    Recently I migrated my homelab from using Nginx with local domain certificates to using Caddy with automatic SSL certificates from Cloudflare. This post will go over the steps I took to set up Caddy with Cloudflare.