Before You Start
Check Verbose Output
When troubleshooting, always use verbose mode to see detailed information:Common Error Messages
”ERROR: Unable to download webpage: HTTP Error 403: Forbidden”
Cause: The website is blocking your request, often due to:- Geographic restrictions
- Rate limiting
- Bot detection
- TLS fingerprinting
Solution 1: Use browser impersonation
Solution 1: Use browser impersonation
curl_cffi to be installed. See available targets:Solution 3: Use a proxy
Solution 3: Use a proxy
Solution 4: Bypass geo-restrictions
Solution 4: Bypass geo-restrictions
”ERROR: [youtube] Video unavailable”
Solutions:Update and use yt-dlp-ejs
Update and use yt-dlp-ejs
YouTube frequently changes its code. Ensure you have:Check the EJS wiki for setup.
- Latest nightly version
- yt-dlp-ejs installed with a JavaScript runtime
Check if video is actually available
Check if video is actually available
Try opening the URL in your browser to verify the video exists and is accessible.
”ERROR: ffmpeg not found”
Cause: ffmpeg is not installed or not in your system PATH. Solutions:Use yt-dlp’s custom ffmpeg builds which include patches for known issues.
”ERROR: Requested format is not available”
Cause: The format you requested doesn’t exist for this video. Solutions:List available formats
List available formats
Use format selection
Use format selection
Fallback to next best
Fallback to next best
”ERROR: This video requires payment to watch”
Cause: The video is behind a paywall or requires authentication. Solution: Use cookies from a logged-in browser session:”WARNING: unable to obtain file audio codec with ffprobe”
Cause: ffprobe is missing or outdated. Solution: Install/update ffmpeg (includes ffprobe):Download Issues
Slow Download Speeds
Solutions:Use external downloader
Use external downloader
- Linux:
sudo apt install aria2 - macOS:
brew install aria2 - Windows: Download from aria2 releases
Increase concurrent fragments
Increase concurrent fragments
Limit rate to avoid throttling
Limit rate to avoid throttling
Download Keeps Failing
Solutions:“ERROR: unable to download video data: HTTP Error 416”
Cause: Server doesn’t support resuming from where you left off. Solution:Authentication Issues
”ERROR: Unable to log in”
Solutions:Check credentials
Check credentials
Verify your username and password are correct:
Use .netrc file
Use .netrc file
Create Then run:
~/.netrc (Unix) or %HOME%\_netrc (Windows):Two-factor authentication
Two-factor authentication
If the site uses 2FA, use cookies from browser instead of direct login.
Post-Processing Issues
”ERROR: Postprocessing failed”
Cause: Usually related to missing or incompatible ffmpeg. Solutions:Check ffmpeg installation
Check ffmpeg installation
Use yt-dlp's ffmpeg builds
Use yt-dlp's ffmpeg builds
Download from yt-dlp/FFmpeg-Builds
Skip post-processing
Skip post-processing
To download without post-processing:
Thumbnail Embedding Failed
Solutions:Playlist Issues
”ERROR: Unable to download just video (if you want to download playlist, pass —yes-playlist)”
Solution: If the URL contains both a video and playlist:Playlist Download Incomplete
Solutions:Platform-Specific Issues
Windows
Missing MSVCR100.dll
Missing MSVCR100.dll
PowerShell encoding issues
PowerShell encoding issues
Use Command Prompt instead of PowerShell, or set UTF-8 encoding:
Path too long error
Path too long error
Use shorter output templates or enable long path support in Windows.
macOS
Permission denied
Permission denied
Make the binary executable:
Quarantine warning
Quarantine warning
Remove quarantine attribute:
Linux
SSL certificate errors
SSL certificate errors
Install ca-certificates:
Python SSL module not available
Python SSL module not available
Reinstall Python with SSL support:
Getting Help
Check the FAQ
Many common questions are answered in the FAQ.Search Existing Issues
Before reporting a bug, search GitHub Issues to see if it’s already reported.Reporting Bugs
When reporting an issue, always include:-
Full verbose output:
-
Version information:
- Complete command used
- URL (if not private/sensitive)
For privacy, you can redact sensitive URLs, but provide enough context about the site/extractor being used.