Skip to content

[YouTube] Unable to download video subtitles: HTTP Error 429: Too Many Requests #13831

Description

@DanMixerBR

EDIT BY MAINTAINER: see #13831 (comment) for solutions

Checklist

  • I'm reporting that yt-dlp is broken on a supported site
  • I've verified that I have updated yt-dlp to nightly or master (update instructions)
  • I've checked that all provided URLs are playable in a browser with the same IP and same login details
  • I've checked that all URLs and arguments with special characters are properly quoted or escaped
  • I've searched known issues, the FAQ, and the bugtracker for similar issues including closed ones. DO NOT post duplicates
  • I've read about sharing account credentials and I'm willing to share it if required

Region

Brazil

Provide a description that is worded well enough to be understood

Hello everyone! When I try to download a video with subtitles in "pt-en-US," yt-dlp displays the following error:
"Unable to download video subtitles for 'pt-en-US': HTTP Error 429: Too Many Requests."

This issue occurs occasionally, as if the program is unstable. Interestingly, the error is resolved when I remove the --write-auto-subs --sub-langs "pt-en.*,en-en.*" commands.

Does anyone know how to resolve or work around this issue without having to remove these commands?

Provide verbose output that clearly demonstrates the problem

  • Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
  • If using API, add 'verbose': True to YoutubeDL params instead
  • Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output

C:\Users\danilo.serafim\Desktop\YT.Video.Downloader>bin\yt-dlp https://www.youtube.com/watch?v=dSDpoobO6yM -f "bv[height<=1080][ext=mp4]+ba[ext=m4a]" -S vcodec:h264 --embed-thumbnail --write-auto-subs --sub-langs "pt-en.*,en-en.*" --convert-subs "srt" -o "videos/%(title)s.%(ext)s" -o "subtitle:videos/subtitles/%(title)s.%(ext)s" -vU
[debug] Command-line config: ['https://www.youtube.com/watch?v=dSDpoobO6yM', '-f', 'bv[height<=1080][ext=mp4]+ba[ext=m4a]', '-S', 'vcodec:h264', '--embed-thumbnail', '--write-auto-subs', '--sub-langs', 'pt-en.*,en-en.*', '--convert-subs', 'srt', '-o', 'videos/%(title)s.%(ext)s', '-o', 'subtitle:videos/subtitles/%(title)s.%(ext)s', '-vU']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version stable@2025.07.21 from yt-dlp/yt-dlp [9951fdd0d] (win_exe)
[debug] Python 3.10.11 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1t  7 Feb 2023)
[debug] exe versions: ffmpeg 2025-07-21-git-8cdb47e47a-essentials_build-www.gyan.dev (setts), ffprobe 2025-07-21-git-8cdb47e47a-essentials_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.1.0, certifi-2025.07.14, curl_cffi-0.10.0, mutagen-1.47.0, requests-2.32.4, sqlite3-3.40.1, urllib3-2.5.0, websockets-15.0.1
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1857 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: stable@2025.07.21 from yt-dlp/yt-dlp
yt-dlp is up to date (stable@2025.07.21 from yt-dlp/yt-dlp)
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[youtube] Extracting URL: https://www.youtube.com/watch?v=dSDpoobO6yM
[youtube] dSDpoobO6yM: Downloading webpage
[youtube] dSDpoobO6yM: Downloading tv client config
[debug] Loading youtube-sts.a1f2424c-main from cache
[youtube] dSDpoobO6yM: Downloading tv player API JSON
[youtube] dSDpoobO6yM: Downloading ios player API JSON
[debug] Loading youtube-nsig.a1f2424c-main from cache
[debug] [youtube] Decrypted nsig ysjkLjwJPDPCsjM7 => HhHXP2jEfp0Nfw
[debug] [youtube] Decrypted nsig ojRD8T1XPHXX5V9v => 6PTEhRa0E_y6eA
[debug] [youtube] dSDpoobO6yM: ios client https formats require a GVS PO Token which was not provided. They will be skipped as they may yield HTTP Error 403. You can manually pass a GVS PO Token for this client with --extractor-args "youtube:po_token=ios.gvs+XXX". For more information, refer to  https://github.com/yt-dlp/yt-dlp/wiki/PO-Token-Guide . To enable these broken formats anyway, pass --extractor-args "youtube:formats=missing_pot"
[youtube] dSDpoobO6yM: Downloading m3u8 information
[info] dSDpoobO6yM: Downloading subtitles: pt-en-US, en-en-US
[debug] Sort order given by user: vcodec:h264
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec, channels, acodec, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, vcodec:h264(7), quality, res, fps, hdr:12(7), source, channels, acodec, lang, proto, size, br, asr, vext, aext, hasaud, id
[info] dSDpoobO6yM: Downloading 1 format(s): 137+140
[info] Writing video subtitles to: videos\Five Nights at Freddy's 2 | Official Trailer.pt-en-US.vtt
[debug] Invoking http downloader on "https://www.youtube.com/api/timedtext?v=dSDpoobO6yM&ei=lHqCaKrcLKfCobIPwcfvsAE&caps=asr&opi=112496729&xoaf=5&xospf=1&hl=en&ip=0.0.0.0&ipbits=0&expire=1753406724&sparams=ip%2Cipbits%2Cexpire%2Cv%2Cei%2Ccaps%2Copi%2Cxoaf&signature=216B0D3A71E5D10121EC6578F8C859341A5DB806.BE0BE8BA702283532EEAD7881FDC2957DA51D96E&key=yt8&lang=en-US&tlang=pt-en-US&fmt=vtt"
ERROR: Unable to download video subtitles for 'pt-en-US': HTTP Error 429: Too Many Requests
Traceback (most recent call last):
  File "yt_dlp\YoutubeDL.py", line 4425, in _write_subtitles
  File "yt_dlp\YoutubeDL.py", line 3250, in dl
  File "yt_dlp\downloader\common.py", line 468, in download
  File "yt_dlp\downloader\http.py", line 371, in real_download
  File "yt_dlp\downloader\http.py", line 122, in establish_connection
  File "yt_dlp\YoutubeDL.py", line 4236, in urlopen
  File "yt_dlp\networking\common.py", line 117, in send
  File "yt_dlp\networking\_curlcffi.py", line 194, in send
  File "yt_dlp\networking\_helper.py", line 194, in wrapper
  File "yt_dlp\networking\common.py", line 359, in send
  File "yt_dlp\networking\_curlcffi.py", line 290, in _send
yt_dlp.networking.exceptions.HTTPError: HTTP Error 429: Too Many Requests

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "yt_dlp\YoutubeDL.py", line 1664, in wrapper
  File "yt_dlp\YoutubeDL.py", line 1820, in __extract_info
  File "yt_dlp\YoutubeDL.py", line 1879, in process_ie_result
  File "yt_dlp\YoutubeDL.py", line 3061, in process_video_result
  File "yt_dlp\YoutubeDL.py", line 185, in wrapper
  File "yt_dlp\YoutubeDL.py", line 3318, in process_info
  File "yt_dlp\YoutubeDL.py", line 4433, in _write_subtitles
yt_dlp.utils.DownloadError: Unable to download video subtitles for 'pt-en-US': HTTP Error 429: Too Many Requests
Pinned by gamer191

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions