Skip to content

Troubleshooting FAQ

Alex Shnitman edited this page Jul 17, 2026 · 1 revision

MeTube is only a UI for yt-dlp: most download problems are yt-dlp problems, and the fastest way to diagnose them is to run yt-dlp directly with the same options. To test inside the container:

docker exec -ti metube sh
cd /downloads
yt-dlp <url>

Once a set of yt-dlp flags works, translate it into YTDL_OPTIONS (see Configuring yt-dlp options in the README).

"Sign in to confirm you're not a bot" / age-restricted / members-only videos

YouTube increasingly requires an authenticated session. Export your browser cookies and upload them via Advanced Options → Upload Cookies — see Using browser cookies in the README.

Downloaded files are owned by root / permission errors

Set PUID/PGID to the user that should own the files (defaults are 1000/1000), and UMASK if you need specific permissions. If you manage ownership yourself, set CHOWN_DIRS=false.

Downloads fail immediately after working for months

Video sites change their layouts constantly; the fix is almost always a yt-dlp update. A new MeTube image is published automatically when a new yt-dlp stable is released — update your container (e.g. with watchtower). To get fixes earlier, follow the nightly channel via YTDL_NIGHTLY_UPDATE_TIME.

The UI loads but downloads never start / no progress updates

MeTube uses WebSocket (Socket.IO) for real-time updates. If you're behind a reverse proxy, it must forward the Upgrade/Connection headers — see Reverse proxy configurations.

Browser extension / bookmarklet requests are blocked

Cross-origin requests are denied unless CORS_ALLOWED_ORIGINS is configured — see the Sending links to MeTube section in the README.


Something missing here? Open an issue.