Skip to content

YouTube Error 429 With a Proxy: Causes of 429 and 403

Find out whether the error comes from the API quota, from too many requests, or from the connection, and what to change first.

The 3 most common causes

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.

Which error is it, and does a new IP help?

Which error is it, and does a new IP help?
ItemWhat it meansDoes changing the IP help?
429 from a page or downloaderToo many requests in a period; wait for Retry-AfterSometimes, after you have slowed down
429 uploadRateLimitExceeded (thumbnails.set)The channel uploaded too many thumbnails recently; try again laterNo, it is tied to the channel
403 quotaExceededDaily quota of the Google Cloud project is used up; resets at midnight Pacific TimeNo
403 forbidden or insufficientPermissionsRequest not properly authorized, or OAuth scope too narrowNo; fix the key or scope
403 commentsDisabledThe video has comments turned offNo
403 on a page or media request, no API reasonThe server refused the request; the cause is not namedMaybe: 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.

Fix it in 5 steps

  1. Step 1: Find out where the error comes from

    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.

  2. Step 2: For API errors, check quota and permissions first

    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.

  3. Step 3: Slow down and wait

    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).

  4. Step 4: Test the exit IP, then try another one

    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.

  5. Step 5: Keep one IP per account

    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.

Check the exit IP and download with pauses

# 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.

If it still fails

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.

403 quotaExceeded in the morning

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.

403 only through the proxy, fine without it

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.

403 on downloads that worked last week

Check Is yt-dlp up to date?

Fix Update the tool first; the yt-dlp project asks for reports on a current version.

Which Proxy302 line for which job

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.

FAQ

What does YouTube error 429 mean?

Too many requests in a given time. The server may send Retry-After to say how long to wait. Slow down first.

What does YouTube error 403 mean?

The server understood the request and refused it. In the Data API the reason field says why, for example quotaExceeded or forbidden.

Can a proxy fix YouTube error 429?

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.

Does a new IP reset my YouTube API quota?

No. The quota belongs to the Google Cloud project and resets at midnight Pacific Time. Reduce expensive calls and cache results instead.

Why do comments return 403?

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.

Reference links

7
  1. MDN: 429 Too Many Requests

    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.

  2. MDN: 403 Forbidden

    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.

  3. YouTube Data API: errors

    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.

  4. YouTube Data API: quota cost

    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.

  5. yt-dlp FAQ

    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.

  6. yt-dlp README: options

    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.

  7. Proxy302 product facts and price list

    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.

Ready to try it?

Create an account, top up once, then pick rotating residential, static ISP or datacenter IPs and have one running in your browser within minutes.