Skip to main content
yt-dlp provides several workaround options to handle problematic websites, network issues, and other edge cases.

Network and Connection Issues

SSL Certificate Problems

If you encounter SSL certificate validation errors:
yt-dlp --no-check-certificates <url>
This disables certificate validation and may expose you to security risks. Only use this option if you trust the source.
Alternatively, use legacy server connection for servers that don’t support RFC 5746:
yt-dlp --legacy-server-connect <url>

Encoding Issues

Force a specific encoding:
yt-dlp --encoding utf-8 <url>
This is experimental and may not work in all cases.

Custom HTTP Headers

Add custom HTTP headers:
yt-dlp --add-headers "User-Agent:Mozilla/5.0" --add-headers "Referer:https://example.com" <url>
You can use this option multiple times to add multiple headers.

Using Insecure Connections

For YouTube and other supported sites:
yt-dlp --prefer-insecure <url>
Currently supported only for YouTube and a few other sites.

Rate Limiting and Throttling

Sleep Between Requests

Add delays between operations:
# Sleep between data extraction requests
yt-dlp --sleep-requests 2 <url>

# Sleep before each download
yt-dlp --sleep-interval 5 <url>

# Random sleep interval
yt-dlp --min-sleep-interval 2 --max-sleep-interval 5 <url>

# Sleep before subtitle downloads
yt-dlp --sleep-subtitles 1 <url>
These options help avoid triggering anti-bot measures.

Retry Configuration

# Set number of retries
yt-dlp --retries 10 <url>

# Infinite retries
yt-dlp --retries infinite <url>

# Configure retry sleep
yt-dlp --retry-sleep linear=1::2 <url>
yt-dlp --retry-sleep fragment:exp=1:20 <url>

Terminal and Display Issues

Bidirectional Text Support

Enable the bidi workaround:
yt-dlp --bidi-workaround <url>
Requires bidiv or fribidi executable in PATH.

Color Output Issues

# Disable colors
yt-dlp --no-colors <url>
# or
yt-dlp --color no_color <url>

# Force colors for specific stream
yt-dlp --color stdout:always <url>
yt-dlp --color stderr:never <url>

Download Issues

Format Selection Problems

Try different format selection strategies:
# List all available formats
yt-dlp -F <url>

# Select specific format
yt-dlp -f 22 <url>

# Fallback options
yt-dlp -f "bestvideo+bestaudio/best" <url>

# Prefer free formats
yt-dlp --prefer-free-formats <url>

Geo-Restrictions

Use a proxy or VPN:
# HTTP/HTTPS proxy
yt-dlp --proxy http://proxy.example.com:8080 <url>

# SOCKS proxy
yt-dlp --proxy socks5://127.0.0.1:1080 <url>

# Geo-verification proxy (for IP checks only)
yt-dlp --geo-verification-proxy http://proxy.example.com:8080 <url>

# Fake X-Forwarded-For header
yt-dlp --xff "US" <url>

Extraction Errors

# Increase socket timeout
yt-dlp --socket-timeout 30 <url>

# Use specific source address
yt-dlp --source-address 192.168.1.100 <url>

# Force IPv4/IPv6
yt-dlp --force-ipv4 <url>
yt-dlp --force-ipv6 <url>

Fragment Download Issues

# Set fragment retries
yt-dlp --fragment-retries 10 <url>

# Skip unavailable fragments
yt-dlp --skip-unavailable-fragments <url>

# Keep fragments for debugging
yt-dlp --keep-fragments <url>

Authentication Issues

Login Problems

Try different authentication methods:
# Use username and password
yt-dlp -u username -p password <url>

# Use .netrc file
yt-dlp --netrc <url>

# Specify netrc location
yt-dlp --netrc-location ~/.netrc-custom <url>

# Two-factor authentication
yt-dlp -u username -p password --twofactor CODE <url>
# Load cookies from browser
yt-dlp --cookies-from-browser chrome <url>
yt-dlp --cookies-from-browser firefox <url>

# Specify browser profile
yt-dlp --cookies-from-browser "firefox:~/.mozilla/firefox/profile" <url>

# Use cookies file
yt-dlp --cookies cookies.txt <url>
Supported browsers: brave, chrome, chromium, edge, firefox, opera, safari, vivaldi, whale

Performance Issues

Slow Downloads

# Increase concurrent fragments
yt-dlp --concurrent-fragments 5 <url>

# Use external downloader
yt-dlp --downloader aria2c <url>

# Adjust buffer size
yt-dlp --buffer-size 16K <url>

# Set HTTP chunk size
yt-dlp --http-chunk-size 10M <url>

High CPU/Memory Usage

# Reduce concurrent fragments
yt-dlp --concurrent-fragments 1 <url>

# Use external downloader for HLS/DASH
yt-dlp --downloader m3u8:ffmpeg <url>

# Process playlist lazily
yt-dlp --lazy-playlist <url>

Website-Specific Workarounds

YouTube Issues

# Ensure you have the latest version
yt-dlp -U

# Use specific user agent
yt-dlp --add-headers "User-Agent:Mozilla/5.0" <url>

# Use cookies from browser
yt-dlp --cookies-from-browser chrome <url>

# Bypass age restriction
yt-dlp --cookies-from-browser firefox <url>

# Download from start for live streams
yt-dlp --live-from-start <url>

Generic Extractor

# Use generic extractor
yt-dlp --ies generic <url>

# Force generic extractor only
yt-dlp --ies generic,default <url>

Debugging

Enable Verbose Output

# Verbose output
yt-dlp --verbose <url>

# Print HTTP traffic
yt-dlp --print-traffic <url>

# Dump pages for debugging
yt-dlp --dump-pages <url>

# Write pages to files
yt-dlp --write-pages <url>

Test Without Downloading

# Simulate download
yt-dlp --simulate <url>

# Get JSON info
yt-dlp --dump-json <url>

# List formats without downloading
yt-dlp -F <url>

Configuration File Workarounds

Permanent Workaround Settings

Create a configuration file to apply workarounds permanently:
~/.config/yt-dlp/config
# Network workarounds
--socket-timeout 30
--retries 10
--sleep-requests 1

# Rate limiting
--limit-rate 1M

# Custom headers
--add-headers "User-Agent:Mozilla/5.0"

# Format selection
--format bestvideo+bestaudio/best

Compatibility Options

yt-dlp provides compatibility options to revert to older behaviors:
# Use youtube-dl compatible behavior
yt-dlp --compat-options youtube-dl <url>

# Specific compat options
yt-dlp --compat-options no-live-chat,no-certifi <url>

# Use legacy HTTP handler
yt-dlp --compat-options prefer-legacy-http-handler <url>

Getting Help

Check the FAQ

Many common issues are covered in the FAQ.

Search Issues

Search existing issues to see if your problem is already reported.

Report Bugs

Create a new issue with verbose output and reproduction steps.

Join Discord

Get help from the community on Discord.