403 error when downloading from youtube since 10-09-2026 #9

Closed
opened 2026-09-10 20:47:29 +00:00 by sem · 1 comment
Owner
WARNING: [youtube] No supported JavaScript runtime could be found. Only deno is enabled by default; to use another runtime add  --js-runtimes RUNTIME[:PATH]  to your command/config. YouTube extraction without a JS runtime has been deprecated, and some formats may be missing. See  https://github.com/yt-dlp/yt-dlp/wiki/EJS  for details on installing one
[youtube] -rx-ZX8FNRQ: Downloading android vr player API JSON
[youtube] -rx-ZX8FNRQ: Downloading ios downgraded player API JSON
WARNING: [youtube] YouTube said: ERROR - Precondition check failed.
WARNING: [youtube] HTTP Error 400: Bad Request. Retrying (1/3)...
[youtube] -rx-ZX8FNRQ: Downloading ios downgraded player API JSON
WARNING: [youtube] YouTube said: ERROR - Precondition check failed.
WARNING: [youtube] HTTP Error 400: Bad Request. Retrying (2/3)...
[youtube] -rx-ZX8FNRQ: Downloading ios downgraded player API JSON
WARNING: [youtube] YouTube said: ERROR - Precondition check failed.
WARNING: [youtube] HTTP Error 400: Bad Request. Retrying (3/3)...
[youtube] -rx-ZX8FNRQ: Downloading ios downgraded player API JSON
WARNING: [youtube] YouTube said: ERROR - Precondition check failed.
WARNING: [youtube] Unable to download API page: HTTP Error 400: Bad Request (caused by <HTTPError 400: Bad Request>)
WARNING: [youtube] -rx-ZX8FNRQ: Some android_vr client https formats have been skipped as they are missing a URL. YouTube may have enabled the SABR-only streaming experiment for the current session. See  https://github.com/yt-dlp/yt-dlp/issues/12482  for more details
[info] -rx-ZX8FNRQ: Downloading 1 format(s): 18
ERROR: unable to download video data: HTTP Error 403: Forbidden
Traceback (most recent call last):
  File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 3544, in process_info
    success, real_download = self.dl(temp_filename, info_dict)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 3285, in dl
    return fd.download(name, new_info, subtitle)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/downloader/common.py", line 480, in download
    ret = self.real_download(filename, info_dict)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/downloader/http.py", line 362, in real_download
    establish_connection()
  File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/downloader/http.py", line 119, in establish_connection
    ctx.data = self.ydl.urlopen(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 4260, in urlopen
    return self._request_director.send(req)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/networking/common.py", line 117, in send
    response = handler.send(request)
               ^^^^^^^^^^^^^^^^^^^^^
  File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/networking/_helper.py", line 194, in wrapper
    return func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/networking/common.py", line 359, in send
    return self._send(request)
           ^^^^^^^^^^^^^^^^^^^
  File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/networking/_requests.py", line 361, in _send
    raise HTTPError(res, redirect_loop=max_redirects_exceeded)
yt_dlp.networking.exceptions.HTTPError: HTTP Error 403: Forbidden

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/sem/music-tools/download_youtube.py", line 35, in <module>
    ydl.download([url])
  File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 3670, in download
    self.__download_wrapper(self.extract_info)(
  File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 3643, in wrapper
    res = func(*args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^
  File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1687, in extract_info
    return self.__extract_info(url, self.get_info_extractor(key), download, extra_info, process)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1698, in wrapper
    return func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1854, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1913, in process_ie_result
    ie_result = self.process_video_result(ie_result, download=download)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 3096, in process_video_result
    self.process_info(new_info)
  File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 189, in wrapper
    return func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 3553, in process_info
    self.report_error(f'unable to download video data: {err}')
  File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1154, in report_error
    self.trouble(f'{self._format_err("ERROR:", self.Styles.ERROR)} {message}', *args, **kwargs)
  File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1093, in trouble
    raise DownloadError(message, exc_info)
yt_dlp.utils.DownloadError: ERROR: unable to download video data: HTTP Error 403: Forbidden
``` WARNING: [youtube] No supported JavaScript runtime could be found. Only deno is enabled by default; to use another runtime add --js-runtimes RUNTIME[:PATH] to your command/config. YouTube extraction without a JS runtime has been deprecated, and some formats may be missing. See https://github.com/yt-dlp/yt-dlp/wiki/EJS for details on installing one [youtube] -rx-ZX8FNRQ: Downloading android vr player API JSON [youtube] -rx-ZX8FNRQ: Downloading ios downgraded player API JSON WARNING: [youtube] YouTube said: ERROR - Precondition check failed. WARNING: [youtube] HTTP Error 400: Bad Request. Retrying (1/3)... [youtube] -rx-ZX8FNRQ: Downloading ios downgraded player API JSON WARNING: [youtube] YouTube said: ERROR - Precondition check failed. WARNING: [youtube] HTTP Error 400: Bad Request. Retrying (2/3)... [youtube] -rx-ZX8FNRQ: Downloading ios downgraded player API JSON WARNING: [youtube] YouTube said: ERROR - Precondition check failed. WARNING: [youtube] HTTP Error 400: Bad Request. Retrying (3/3)... [youtube] -rx-ZX8FNRQ: Downloading ios downgraded player API JSON WARNING: [youtube] YouTube said: ERROR - Precondition check failed. WARNING: [youtube] Unable to download API page: HTTP Error 400: Bad Request (caused by <HTTPError 400: Bad Request>) WARNING: [youtube] -rx-ZX8FNRQ: Some android_vr client https formats have been skipped as they are missing a URL. YouTube may have enabled the SABR-only streaming experiment for the current session. See https://github.com/yt-dlp/yt-dlp/issues/12482 for more details [info] -rx-ZX8FNRQ: Downloading 1 format(s): 18 ERROR: unable to download video data: HTTP Error 403: Forbidden Traceback (most recent call last): File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 3544, in process_info success, real_download = self.dl(temp_filename, info_dict) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 3285, in dl return fd.download(name, new_info, subtitle) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/downloader/common.py", line 480, in download ret = self.real_download(filename, info_dict) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/downloader/http.py", line 362, in real_download establish_connection() File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/downloader/http.py", line 119, in establish_connection ctx.data = self.ydl.urlopen(request) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 4260, in urlopen return self._request_director.send(req) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/networking/common.py", line 117, in send response = handler.send(request) ^^^^^^^^^^^^^^^^^^^^^ File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/networking/_helper.py", line 194, in wrapper return func(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/networking/common.py", line 359, in send return self._send(request) ^^^^^^^^^^^^^^^^^^^ File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/networking/_requests.py", line 361, in _send raise HTTPError(res, redirect_loop=max_redirects_exceeded) yt_dlp.networking.exceptions.HTTPError: HTTP Error 403: Forbidden During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/sem/music-tools/download_youtube.py", line 35, in <module> ydl.download([url]) File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 3670, in download self.__download_wrapper(self.extract_info)( File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 3643, in wrapper res = func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1687, in extract_info return self.__extract_info(url, self.get_info_extractor(key), download, extra_info, process) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1698, in wrapper return func(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1854, in __extract_info return self.process_ie_result(ie_result, download, extra_info) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1913, in process_ie_result ie_result = self.process_video_result(ie_result, download=download) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 3096, in process_video_result self.process_info(new_info) File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 189, in wrapper return func(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 3553, in process_info self.report_error(f'unable to download video data: {err}') File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1154, in report_error self.trouble(f'{self._format_err("ERROR:", self.Styles.ERROR)} {message}', *args, **kwargs) File "/home/sem/music-tools/.env/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1093, in trouble raise DownloadError(message, exc_info) yt_dlp.utils.DownloadError: ERROR: unable to download video data: HTTP Error 403: Forbidden ```
Author
Owner

updating yt_dlp fixed this issue:

> pip3 install --upgrade yt_dlp
Requirement already satisfied: yt_dlp in ./.env/lib/python3.12/site-packages (2026.1.29)
Collecting yt_dlp
  Downloading yt_dlp-2026.8.19-py3-none-any.whl.metadata (183 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 183.7/183.7 kB 1.2 MB/s eta 0:00:00
Downloading yt_dlp-2026.8.19-py3-none-any.whl (3.2 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.2/3.2 MB 11.2 MB/s eta 0:00:00
Installing collected packages: yt_dlp
  Attempting uninstall: yt_dlp
    Found existing installation: yt-dlp 2026.1.29
    Uninstalling yt-dlp-2026.1.29:
      Successfully uninstalled yt-dlp-2026.1.29
Successfully installed yt_dlp-2026.8.19
updating yt_dlp fixed this issue: ``` > pip3 install --upgrade yt_dlp Requirement already satisfied: yt_dlp in ./.env/lib/python3.12/site-packages (2026.1.29) Collecting yt_dlp Downloading yt_dlp-2026.8.19-py3-none-any.whl.metadata (183 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 183.7/183.7 kB 1.2 MB/s eta 0:00:00 Downloading yt_dlp-2026.8.19-py3-none-any.whl (3.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.2/3.2 MB 11.2 MB/s eta 0:00:00 Installing collected packages: yt_dlp Attempting uninstall: yt_dlp Found existing installation: yt-dlp 2026.1.29 Uninstalling yt-dlp-2026.1.29: Successfully uninstalled yt-dlp-2026.1.29 Successfully installed yt_dlp-2026.8.19 ```
sem closed this issue 2026-09-11 21:48:47 +00:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sem/music-tools#9