customer-service-btnContact Service
HometoOthertoArticle Details

How to Fix yt-dlp HTTP 429 Errors: Causes & Solutions

How to Fix yt-dlp HTTP 429 Errors: Causes & SolutionsDaniel Wong
dateTime2026-11-04 06:09
dateTimeOther

When using yt-dlp to download YouTube videos in bulk, back up content, or manage cross-platform operations, you may occasionally encounter the error HTTP Error 429: Too Many Requests.

A 429 response means the target service considers your requests to exceed its permitted rate or usage limits.

The restriction may be related to your outgoing IP address, account status, request patterns, or a specific endpoint. The exact cause depends on where the error occurs.

To troubleshoot the issue effectively, first identify which request stage returns the 429 error, then apply the appropriate fix.

How to Fix yt-dlp HTTP 429 Errors: Causes & Solutions

What Is a yt-dlp HTTP 429 Error? Common Causes

HTTP 429 is the status code returned when a service receives too many requests. It is not necessarily triggered by a single request. In many cases, the service determines that repeated requests from the same outgoing IP address have exceeded its usage limits over a period of time.

Common causes include:

CauseDescription
Excessive request frequencyRepeated requests for video pages, playlists, or subtitle endpoints within a short period can trigger rate limits.
Outgoing IP restrictionsSome data center IPs may face stricter access restrictions due to shared usage or previous request activity.
Access verificationThe target service may require verification, such as a CAPTCHA. Requests may be rejected if verification is not completed.
Endpoint-specific issuesChanges in subtitle language codes, client status, or other parameters may cause errors on specific endpoints.

A 429 response does not necessarily mean your IP address has been permanently banned. In many cases, it indicates a temporary restriction that may be lifted after adjusting your request patterns or network connection.


How to Fix yt-dlp HTTP 429 Errors

Follow these troubleshooting steps in order. Start with the simplest checks before making more extensive changes to your setup.

1. Identify Where the 429 Error Occurs

When downloading YouTube videos, yt-dlp sends multiple requests rather than just one. These may include requests for the video webpage, initial data, player APIs, video streams, and subtitles. The troubleshooting approach depends on which stage returns the 429 error:

Error StageWhat to Check
Downloading webpageOutgoing IP address, request frequency, and access verification
Downloading initial data API JSONNetwork connection, request restrictions, and client status
Downloading video dataVideo stream requests, proxy connections, and access credentials
Unable to download subtitlesSubtitle language codes and subtitle endpoint request frequency

Check the logs to pinpoint where the 429 error occurs. This is usually more effective than immediately switching IP addresses.

2. Pause Requests and Avoid Repeated Retries

Repeatedly retrying requests after receiving a 429 response may prolong the restriction. Pause the current task for a while, then review the settings and connection issues below. If the restriction is temporary, you may be able to resume downloading once access is restored.

3. Update yt-dlp and Check Your Runtime Environment

Older versions may contain outdated extraction logic. Update yt-dlp to the latest version and make sure your JavaScript runtime is properly configured.

YouTube extraction may require JavaScript challenge-solving scripts. yt-dlp officially recommends Deno and also supports Node.js and QuickJS through configuration.

If the logs show JavaScript Runtime or EJS-related warnings, check whether your runtime environment and challenge-solving components are working correctly.

If the 429 error persists after updating, check your request frequency, outgoing IP address, Cookie status, and the specific endpoint returning the error.

4. Increase Request Intervals

Short intervals between requests can cause bulk download tasks to generate a large number of requests in a short time. Use the following options to space them out:

yt-dlp \
  --sleep-requests 2 \
  --sleep-interval 5 \
  --max-sleep-interval 15 \
  --batch-file urls.txt

The --sleep-requests option sets the delay between requests made while extracting video information. The --sleep-interval and --max-sleep-interval options set the range for random delays before each download.

These options apply to different stages of the process. Using them together can help reduce request frequency over short periods.

5. Use Cookies for Login and Access Verification

A 429 error may sometimes occur alongside a verification requirement. According to yt-dlp's official guidance, if YouTube displays a CAPTCHA in your browser, complete the verification there first, then pass your browser Cookies to yt-dlp:

yt-dlp --cookies-from-browser chrome "VIDEO_URL"

Keep in mind that Cookies allow yt-dlp to use your browser's login session or complete certain access checks, but they do not guarantee a fix for every 429 error.

Frequent automated requests using a personal account may also carry account and access restriction risks. Never share your Cookie files with others.

If your browser and yt-dlp use different network connections, you can use --source-address to bind connections to a specific local source IP address. This option is useful when your device has multiple available network interfaces and you need to keep the verification environment consistent.

6. Check Your IPv4 and IPv6 Connections

If you suspect a routing or connection issue, try forcing yt-dlp to use IPv4:

yt-dlp --force-ipv4 "VIDEO_URL"

This option is intended for troubleshooting IPv6 routing or connectivity problems. IPv6 addresses should not automatically be considered high-risk. Most 429 errors are unrelated to the IP protocol version, so check the other possible causes first.

7. Check Subtitle and Other API Requests

If the logs show that the 429 error occurs during subtitle downloads, focus on the subtitle endpoint. Check the request frequency, subtitle language, and client status.

If only one subtitle language fails, try another available language to determine whether the issue is limited to a specific subtitle request.

If the restriction persists after these checks, consider switching to a different outgoing IP address.

Also note that errors such as 403, LOGIN_REQUIRED, or unavailable formats may involve PO Token or client configuration issues. These are separate from HTTP 429 and should be investigated independently.


How to Reduce yt-dlp 429 Errors with Proxy IPs

If a single outgoing IP address is repeatedly restricted or you need to run bulk download tasks over an extended period, a proxy can help distribute requests across different network exits.

1. Configure a Proxy from the Command Line

Use the --proxy option to connect through an HTTP or SOCKS5 proxy:

# SOCKS5 proxy
yt-dlp --proxy "socks5://username:password@proxy_host:port" "VIDEO_URL"

# HTTP proxy
yt-dlp --proxy "http://username:password@proxy_host:port" "VIDEO_URL"

You can also combine a proxy with request interval options:

yt-dlp --proxy "socks5://username:password@proxy_host:port" \
       --sleep-requests 2 \
       --batch-file urls.txt

2. Set a Default Proxy in the Configuration File

To avoid entering the proxy details every time, add them to your yt-dlp configuration file:

▸ Windows: %APPDATA%\yt-dlp\config or config.txt

▸ Linux / macOS: ~/.config/yt-dlp/config or config.txt

If you use a portable version, you can also place yt-dlp.conf in the same directory as the yt-dlp executable.

Add the following options to the configuration file:

--proxy "socks5://username:password@proxy_host:port"
--sleep-interval 3
--max-sleep-interval 10

3. Dynamic vs. Static Residential Proxies: Which Should You Choose?

Both proxy types provide residential IP addresses, but they serve different use cases:

Proxy TypeUse CasesKey Benefits
Dynamic residential proxiesBulk video collection, public data gathering, and task distributionSupport configurable IP rotation, making it possible to distribute requests across different batches or independent video tasks.
Static residential proxiesLong-term video monitoring, location-specific content collection, and tasks that require consistent sessionsProvide a fixed IP address for a consistent network connection.

Choose a rotation interval based on your task volume, request frequency, and provider settings. Frequent IP changes are not always better.

Dynamic residential proxies can distribute requests across separate video tasks. For downloads that require continuous connections, sticky sessions are a better option. They help prevent connection interruptions caused by changing IP addresses during a download.

Keep in mind that a static IP does not guarantee immunity from 429 errors, and rotating to a new dynamic IP does not guarantee that access will be restored.

4. Choosing a Proxy Provider

If you need to run yt-dlp bulk download tasks regularly, residential proxies may be worth considering.

IPDEEP offers dynamic residential proxies and static residential proxies, with support for HTTP, HTTPS, and SOCKS5 protocols. Choose the option that best fits your task volume, target locations, and session requirements.

Distributing requests across suitable IP addresses while maintaining reasonable request intervals can help reduce the load on a single network exit.


Frequently Asked Questions

Q1: How Long Does It Take to Recover from a yt-dlp 429 Error?

The duration of an HTTP 429 restriction depends on the target platform. It may be lifted automatically after some time. Repeated retries can potentially prolong the restriction.

Pause your requests, check your network connection and access status, then gradually resume your tasks.

Q2: What Is a Reliable Setup for Bulk Playlist Downloads?

Consider combining residential proxies, random delays, and retry settings. For example:

yt-dlp --proxy "socks5://your-proxy-endpoint" \
       --sleep-requests 2 \
       --sleep-interval 5 \
       --max-sleep-interval 15 \
       --batch-file urls.txt

Request intervals help control download frequency, while retry settings can handle occasional network interruptions. Used together, they can improve download stability and efficiency.

ad2
Article Outline
Follow Us
百家号搜狐号B站YouTubeXTelegramGitHub知乎