MeTube (yt-dlp Web UI)
Web GUI for yt-dlp to download videos from YouTube and other sites
Overview
MeTube is a modern web-based frontend for yt-dlp, the most powerful and actively maintained YouTube video downloader available today. Built as a successor to the original youtube-dl project, yt-dlp supports over 1,000 video platforms including YouTube, Vimeo, TikTok, Twitter, and countless others. MeTube wraps this command-line tool in an intuitive web interface, making video downloading accessible to users who prefer GUI interactions over terminal commands. This Docker deployment creates a self-hosted video downloading service that operates entirely within your network, giving you complete control over your media acquisition workflow. The containerized approach ensures yt-dlp stays updated with the latest site compatibility fixes while maintaining a consistent user experience across different host systems. MeTube is perfect for content creators, researchers, educators, and media enthusiasts who need reliable video downloading capabilities without depending on third-party online services or browser extensions that may compromise privacy or functionality.
Key Features
- Clean web interface for yt-dlp with real-time download progress monitoring
- Support for over 1,000 video platforms including YouTube, Vimeo, TikTok, and Twitch
- Flexible download queue management with ability to add multiple URLs simultaneously
- Advanced yt-dlp options passthrough via YTDL_OPTIONS environment variable
- Automatic video format selection with manual quality override capabilities
- Playlist and channel downloading with individual video selection options
- Download history tracking and management through persistent state storage
- Subtitle and metadata extraction with configurable filename templates
Common Use Cases
- 1Content creators archiving their own videos from multiple platforms for backup purposes
- 2Educational institutions downloading lecture videos and course materials for offline access
- 3Researchers collecting video data from social media platforms for academic analysis
- 4Media professionals creating local libraries of reference materials and inspiration content
- 5Home media server operators building collections of legally downloadable content
- 6Corporate training departments archiving webinars and instructional videos
- 7Digital preservationists maintaining copies of important cultural or historical video content
Prerequisites
- Docker and Docker Compose installed on host system
- Minimum 2GB RAM for handling multiple concurrent downloads
- At least 10GB free disk space for video storage (more for extensive downloading)
- Port 8081 available on host system (or ability to modify METUBE_PORT)
- Basic understanding of yt-dlp options syntax for advanced configuration
- Network connectivity to target video platforms (some may require VPN for geo-restrictions)
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 metube: 3 image: ghcr.io/alexta69/metube:latest4 container_name: metube5 restart: unless-stopped6 ports: 7 - "${METUBE_PORT:-8081}:8081"8 volumes: 9 - ./downloads:/downloads10 environment: 11 - UID=${UID:-1000}12 - GID=${GID:-1000}13 - DOWNLOAD_DIR=/downloads14 - STATE_DIR=/downloads/.metube15 - YTDL_OPTIONS=${YTDL_OPTIONS:-{}}.env Template
.env
1# MeTube Configuration2METUBE_PORT=808134# User/Group IDs for file permissions5UID=10006GID=100078# yt-dlp options as JSON9# Example: {"format": "bestvideo+bestaudio/best"}10YTDL_OPTIONS={}Usage Notes
- 1Web interface at http://localhost:8081
- 2Paste video URLs to download
- 3Downloads saved to ./downloads folder
- 4Supports YouTube, Vimeo, and 1000+ sites
- 5Configure quality via YTDL_OPTIONS
- 6Based on yt-dlp (youtube-dl fork)
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 metube:5 image: ghcr.io/alexta69/metube:latest6 container_name: metube7 restart: unless-stopped8 ports:9 - "${METUBE_PORT:-8081}:8081"10 volumes:11 - ./downloads:/downloads12 environment:13 - UID=${UID:-1000}14 - GID=${GID:-1000}15 - DOWNLOAD_DIR=/downloads16 - STATE_DIR=/downloads/.metube17 - YTDL_OPTIONS=${YTDL_OPTIONS:-{}}18EOF1920# 2. Create the .env file21cat > .env << 'EOF'22# MeTube Configuration23METUBE_PORT=80812425# User/Group IDs for file permissions26UID=100027GID=10002829# yt-dlp options as JSON30# Example: {"format": "bestvideo+bestaudio/best"}31YTDL_OPTIONS={}32EOF3334# 3. Start the services35docker compose up -d3637# 4. View logs38docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/metube/run | bashTroubleshooting
- HTTP Error 429 or rate limiting messages: Add delays between downloads using YTDL_OPTIONS with sleep-interval parameter
- Downloads failing with 'Video unavailable' errors: Update the container image as yt-dlp frequently patches site compatibility issues
- Permission denied errors when writing files: Verify UID and GID environment variables match your host system user ownership
- Container fails to start with port binding errors: Check if port 8081 is already in use or modify METUBE_PORT variable
- Downloads stuck at 0% progress: Some sites require cookies or authentication - configure these via YTDL_OPTIONS
- Large video files causing container crashes: Increase Docker memory limits or use format selection to download smaller files
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Ad Space
Shortcuts: C CopyF FavoriteD Download