The YouTube Predownloader now supports SOCKS5, HTTP, and HTTPS proxies for all download operations, with special support for PIA (Private Internet Access) SOCKS5 proxies.
Edit proxy_config.py and set your PIA credentials:
# PIA SOCKS5 Proxy Server Details
PROXY_ADDRESS = "proxy-nl.privateinternetaccess.com" # Choose your server
PROXY_PORT = 1080
PROXY_USER = "your_pia_username" # Your actual PIA username
PROXY_PASS = "your_pia_password" # Your actual PIA password
Available PIA servers:
proxy-nl.privateinternetaccess.comproxy-us-east.privateinternetaccess.comproxy-us-west.privateinternetaccess.comproxy-uk.privateinternetaccess.comproxy-de.privateinternetaccess.comproxy-ca.privateinternetaccess.comproxy-au.privateinternetaccess.comTest your configuration:
python3 proxy_config.py
python3 test_proxy.py
Set environment variables before running the script:
# SOCKS5 Proxy (highest priority)
export SOCKS5_PROXY="socks5://username:password@proxy.example.com:1080"
# HTTP Proxy (medium priority)
export HTTP_PROXY="http://proxy.example.com:8080"
# HTTPS Proxy (lowest priority)
export HTTPS_PROXY="https://proxy.example.com:8080"
# Then run the script
python3 main.py
Edit the proxy configuration section in main.py:
# Override all other configurations
HTTP_PROXY = "http://proxy.example.com:8080"
HTTPS_PROXY = "https://proxy.example.com:8080"
SOCKS5_PROXY = "socks5://127.0.0.1:1080"
The script uses proxies in this priority order:
proxy_config.py if configured)Edit proxy_config.py:
PROXY_ADDRESS = "proxy-us-east.privateinternetaccess.com"
PROXY_USER = "p1234567"
PROXY_PASS = "your_password"
Run the downloader:
python3 main.py
export SOCKS5_PROXY="socks5://127.0.0.1:9050"
python3 main.py
# Create SSH SOCKS5 tunnel
ssh -D 1080 -C -N user@your-server.com &
# Configure and run
export SOCKS5_PROXY="socks5://127.0.0.1:1080"
python3 main.py
export HTTP_PROXY="http://username:password@proxy.example.com:8080"
python3 main.py
# Test PIA proxy settings
python3 proxy_config.py
# Comprehensive proxy test
python3 test_proxy.py
The script will log the active proxy configuration on startup:
2025-08-31 10:30:15 - INFO - PIA SOCKS5 Proxy: proxy-nl.privateinternetaccess.com:1080 (user: p1234567)
During downloads, you'll see:
2025-08-31 10:30:30 - INFO - 🌐 Using PIA SOCKS5 proxy: proxy-nl.privateinternetaccess.com:1080
Test your proxy with yt-dlp directly:
# Test PIA proxy (replace with your credentials)
yt-dlp --proxy socks5://username:password@proxy-nl.privateinternetaccess.com:1080 --simulate "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
# Test SOCKS5 proxy
yt-dlp --proxy socks5://127.0.0.1:1080 --simulate "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
# Test HTTP proxy
yt-dlp --proxy http://proxy.example.com:8080 --simulate "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
To disable proxy usage:
# Remove environment variables
unset SOCKS5_PROXY
unset HTTP_PROXY
unset HTTPS_PROXY
# Disable PIA configuration in proxy_config.py
python3 main.py
Or rename/delete the proxy configuration file:
mv proxy_config.py proxy_config.py.disabled
python3 main.py