429 comes back right after the first request
Check Is the exit IP already limited, or are other jobs using it at the same time?
Fix Stop all jobs on that exit for a while, then restart one job with pauses. Give separate jobs separate exits.
Find out whether the error comes from the API quota, from too many requests, or from the connection, and what to change first.
Cause 1: too many requests from one exit IP in a short time. That is what 429 means. The yt-dlp FAQ describes it as the service blocking your IP because of overuse, usually a soft block. The fix is to slow down, wait for Retry-After, and then retry; changing the IP is the second step, not the first.
Cause 2: the API refuses the call. A 403 from the YouTube Data API carries a reason: quotaExceeded when the daily quota is used up (10,000 units by default, reset at midnight Pacific Time), forbidden or insufficientPermissions when the key or OAuth scope is wrong, commentsDisabled when the video has comments turned off. None of these depends on your IP.
Cause 3: a downloader or script gets a 403 on the page or media request, with no API reason. Look at the tool version, the cookies and the exit IP, in that order. Datacenter IPs are recognisable as datacenter, so for a logged-in account or channel work use a residential exit that stays in the account's country.
| Item | What it means | Does changing the IP help? |
|---|---|---|
| 429 from a page or downloader | Too many requests in a period; wait for Retry-After | Sometimes, after you have slowed down |
| 429 uploadRateLimitExceeded (thumbnails.set) | The channel uploaded too many thumbnails recently; try again later | No, it is tied to the channel |
| 403 quotaExceeded | Daily quota of the Google Cloud project is used up; resets at midnight Pacific Time | No |
| 403 forbidden or insufficientPermissions | Request not properly authorized, or OAuth scope too narrow | No; fix the key or scope |
| 403 commentsDisabled | The video has comments turned off | No |
| 403 on a page or media request, no API reason | The server refused the request; the cause is not named | Maybe: update the tool, check cookies, then test another exit |
From the YouTube Data API error and quota pages, MDN and the yt-dlp FAQ, read on 13 November 2026. The last row is a rule of thumb, not documented behaviour: test before you change your setup.
If the response is JSON with an error.errors[].reason, it comes from the Data API: use the table. If it is a plain HTTP status from a page, a video file or a downloader, treat it as a request-rate or access problem.
Open the Quotas page of the Google Cloud console and look at today's usage. Cut calls that cost quota, cache what does not change, and check the key and OAuth scopes. A proxy will not change any of this.
Honour Retry-After when it is sent, add a pause between requests, and lower the number of parallel downloads. In yt-dlp use --sleep-requests and --sleep-interval (see the code below).
Run the curl line to see which IP and country YouTube will see. If the request still fails after step 3, repeat the same request through a different exit and compare. On a rotating line every new connection is a new IP.
For a logged-in account or a channel, use a fixed, clean IP in the account's country and keep the environment the same between sessions. Do not rotate an account between exits.
# 1) which IP will YouTube see?
curl -x http://LOGIN:PASSWORD@HOST:2222 https://ipinfo.io/json
# 2) yt-dlp through the proxy, with pauses and fewer retries
yt-dlp --proxy http://LOGIN:PASSWORD@HOST:2222 \
--sleep-requests 1 --sleep-interval 5 --max-sleep-interval 15 \
--retries 3 "VIDEO_URL"Example only: replace LOGIN, PASSWORD, HOST and VIDEO_URL; percent-encode special characters such as @ in the login. The pause values are a starting point, not a number YouTube publishes. Download only what you have the right to download.
Check Is the exit IP already limited, or are other jobs using it at the same time?
Fix Stop all jobs on that exit for a while, then restart one job with pauses. Give separate jobs separate exits.
Check Did a scheduled job spend the quota overnight? Check the Quotas page.
Fix Wait for the reset at midnight Pacific Time and lower the number of calls. Changing the IP does not restore quota.
Check Is the exit a datacenter IP, or is it in a different country from the account?
Fix Use a residential exit in the account's country and compare the IP check with the account's country.
Check Is yt-dlp up to date?
Fix Update the tool first; the yt-dlp project asks for reports on a current version.
For many independent page or media requests, rotating residential gives a new IP on every new connection, from US$1.50 per GB on the Budget line, with HTTP on port 2222. For a logged-in account or channel, a static ISP IP stays the same during the lease: US$0.50 for 1 day, US$7.99 for 30 days, in any country. Datacenter IPs are recognisable as datacenter, so keep them away from account work.
No proxy removes a rate limit or an API quota; it only decides which IP YouTube sees. There is no free trial; the smallest purchase is 1 GB of rotating residential traffic or one IP for one day.
Too many requests in a given time. The server may send Retry-After to say how long to wait. Slow down first.
The server understood the request and refused it. In the Data API the reason field says why, for example quotaExceeded or forbidden.
Only partly. A different exit IP can help when the old one was limited, but a proxy does not remove rate limits, so you still need pauses and a cap on parallel jobs.
No. The quota belongs to the Google Cloud project and resets at midnight Pacific Time. Reduce expensive calls and cache results instead.
With commentThreads.list a 403 commentsDisabled means the video has turned comments off; forbidden means the request is not authorized. Neither is an IP problem.
Official documentation · Confirmed on:
Read on 13 November 2026: 429 means the client has sent too many requests in a given amount of time ("rate limiting"); a Retry-After header may say how long to wait before making the request again.
Official documentation · Confirmed on:
Read on 13 November 2026: with 403 the server understood the request but refused to process it, and authenticating again makes no difference; the failure is tied to application logic such as insufficient permissions.
Official documentation · Confirmed on:
Read on 13 November 2026: 403 quotaExceeded ("you have exceeded your quota"), 403 forbidden ("The request may not be properly authorized"), 403 insufficientPermissions (OAuth scopes insufficient), 403 commentsDisabled for commentThreads.list (the video has disabled comments); the only 429 listed is tooManyRequests / uploadRateLimitExceeded for thumbnails.set.
Official documentation · Confirmed on:
Read on 13 November 2026: every request costs at least one quota unit; a project that enables the API gets 10,000 units per day for most endpoints plus separate limits of 100 calls each for search.list and videos.insert; daily quotas reset at midnight Pacific Time; usage is shown on the Quotas page of the Google Cloud console.
Official documentation · Confirmed on:
Read on 13 November 2026: for HTTP Error 429 the FAQ says the service is blocking your IP address because of overuse, usually a soft block that lifts after solving a CAPTCHA, and suggests --proxy or --source-address to select another IP address; bug reports should use a current yt-dlp version.
Official documentation · Confirmed on:
Read on 13 November 2026: --proxy URL uses an HTTP, HTTPS or SOCKS proxy; --sleep-requests SECONDS sleeps between requests during data extraction; --sleep-interval and --max-sleep-interval set a pause before each download; -R/--retries defaults to 10.
Product observation · Confirmed on:
Product facts file of the site (prices in US$, 1 PTC = US$1, protocols and ports, lease terms; protocol tests of 4 November 2026 and the rotating datacenter line of 10 November 2026). Checked on 13 November 2026.
Create an account, top up once, then pick rotating residential, static ISP or datacenter IPs and have one running in your browser within minutes.