yt_dlp.utils.DownloadError: ERROR: unable to download video data: HTTP Error 403: Forbidden
2026-08-15 13:53:12,873 [youtube-dl] WARNING: The extractor specified to use impersonation for this download, but no impersonate target is available. If you encounter errors, then see https://github.com/yt-dlp/yt-dlp#impersonation for information on installing the required dependencies
2026-08-15 13:53:12,898 [youtube-dl] WARNING: The extractor specified to use impersonation for this download, but no impersonate target is available. If you encounter errors, then see https://github.com/yt-dlp/yt-dlp#impersonation for information on installing the required dependencies
2026-08-15 13:53:12,922 [youtube-dl] WARNING: The extractor specified to use impersonation for this download, but no impersonate target is available. If you encounter errors, then see https://github.com/yt-dlp/yt-dlp#impersonation for information on installing the required dependencies
2026-08-15 13:53:12,996 [gpodder.download] ERROR: Download failed: ERROR: unable to download video data: HTTP Error 403: Forbidden
Traceback (most recent call last):
File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\YoutubeDL.py", line 3571, in process_info
partial_success, real_download = self.dl(fname, new_info)
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\YoutubeDL.py", line 3324, in dl
return fd.download(name, new_info, subtitle)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\downloader\common.py", line 480, in download
ret = self.real_download(filename, info_dict)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\downloader\http.py", line 362, in real_download
establish_connection()
File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\downloader\http.py", line 119, in establish_connection
ctx.data = self.ydl.urlopen(request)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\YoutubeDL.py", line 4305, in urlopen
return self._request_director.send(req)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\networking\common.py", line 117, in send
response = handler.send(request)
^^^^^^^^^^^^^^^^^^^^^
File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\networking\_helper.py", line 194, in wrapper
return func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\networking\common.py", line 359, in send
return self._send(request)
^^^^^^^^^^^^^^^^^^^
File "C:\***path**\data\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 "C:\***path**\data\lib\python3.12\site-packages\gpodder\download.py", line 911, in run
headers, real_url = downloader.retrieve_resume(self.tempname, self.status_updated)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\***path**\data\share\gpodder\extensions\youtube-dl.py", line 113, in retrieve_resume
res = self._ytdl.fetch_video(info, opts)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\***path**\data\share\gpodder\extensions\youtube-dl.py", line 370, in fetch_video
return ydl.process_video_result(info, download=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\YoutubeDL.py", line 3135, in process_video_result
self.process_info(new_info)
File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\YoutubeDL.py", line 195, in wrapper
return func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\YoutubeDL.py", line 3598, in process_info
self.report_error(f'unable to download video data: {err}')
File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\YoutubeDL.py", line 1166, in report_error
self.trouble(f'{self._format_err("ERROR:", self.Styles.ERROR)} {message}', *args, **kwargs)
File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\YoutubeDL.py", line 1104, in trouble
raise DownloadError(message, exc_info)
yt_dlp.utils.DownloadError: ERROR: unable to download video data: HTTP Error 403: Forbidden
2026-08-15 14:24:02,994 [youtube-dl] WARNING: [youtube] [jsc:deno] Challenge solver lib script version 0.4.0 is not supported (source: python package, variant: ScriptVariant.MINIFIED, supported version: 0.8.0)
2026-08-15 14:24:03,079 [youtube-dl] WARNING: [youtube] [jsc] Remote components challenge solver script (deno) and NPM package (deno) were skipped. These may be required to solve JS challenges. You can enable these downloads with --remote-components ejs:github (recommended) or --remote-components ejs:npm , respectively. For more information and alternatives, refer to https://github.com/yt-dlp/yt-dlp/wiki/EJS
2026-08-15 14:24:03,079 [youtube-dl] WARNING: [youtube] 0QMKeNHbwbE: Signature solving failed: Some formats may be missing. Ensure you have a supported JavaScript runtime and challenge solver script distribution installed. Review any warnings presented before this message. For more details, refer to https://github.com/yt-dlp/yt-dlp/wiki/EJS
2026-08-15 14:24:03,083 [youtube-dl] WARNING: [youtube] 0QMKeNHbwbE: n challenge solving failed: Some formats may be missing. Ensure you have a supported JavaScript runtime and challenge solver script distribution installed. Review any warnings presented before this message. For more details, refer to https://github.com/yt-dlp/yt-dlp/wiki/EJS
2026-08-15 14:24:05,987 [gpodder.gtkui.services] WARNING: Cannot load cover art
Traceback (most recent call last):
File "C:\***path**\data\lib\python3.12\site-packages\gpodder\gtkui\services.py", line 110, in __get_cover
pixbuf = GdkPixbuf.Pixbuf.new_from_file(filename)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Hi,
I'm probably doing something wrong, I finally upgraded to w11. Im using the latest official release, but maybe I should try a newer artifact? I did add deno and the system variable with the path. Te cover error is because i mirrored the files with 0 bytes in downloads but I guess it will just fetch them again.
Here's the log:
yt_dlp.utils.DownloadError: ERROR: unable to download video data: HTTP Error 403: Forbidden 2026-08-15 13:53:12,873 [youtube-dl] WARNING: The extractor specified to use impersonation for this download, but no impersonate target is available. If you encounter errors, then see https://github.com/yt-dlp/yt-dlp#impersonation for information on installing the required dependencies 2026-08-15 13:53:12,898 [youtube-dl] WARNING: The extractor specified to use impersonation for this download, but no impersonate target is available. If you encounter errors, then see https://github.com/yt-dlp/yt-dlp#impersonation for information on installing the required dependencies 2026-08-15 13:53:12,922 [youtube-dl] WARNING: The extractor specified to use impersonation for this download, but no impersonate target is available. If you encounter errors, then see https://github.com/yt-dlp/yt-dlp#impersonation for information on installing the required dependencies 2026-08-15 13:53:12,996 [gpodder.download] ERROR: Download failed: ERROR: unable to download video data: HTTP Error 403: Forbidden Traceback (most recent call last): File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\YoutubeDL.py", line 3571, in process_info partial_success, real_download = self.dl(fname, new_info) ^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\YoutubeDL.py", line 3324, in dl return fd.download(name, new_info, subtitle) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\downloader\common.py", line 480, in download ret = self.real_download(filename, info_dict) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\downloader\http.py", line 362, in real_download establish_connection() File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\downloader\http.py", line 119, in establish_connection ctx.data = self.ydl.urlopen(request) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\YoutubeDL.py", line 4305, in urlopen return self._request_director.send(req) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\networking\common.py", line 117, in send response = handler.send(request) ^^^^^^^^^^^^^^^^^^^^^ File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\networking\_helper.py", line 194, in wrapper return func(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\networking\common.py", line 359, in send return self._send(request) ^^^^^^^^^^^^^^^^^^^ File "C:\***path**\data\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 "C:\***path**\data\lib\python3.12\site-packages\gpodder\download.py", line 911, in run headers, real_url = downloader.retrieve_resume(self.tempname, self.status_updated) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\***path**\data\share\gpodder\extensions\youtube-dl.py", line 113, in retrieve_resume res = self._ytdl.fetch_video(info, opts) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\***path**\data\share\gpodder\extensions\youtube-dl.py", line 370, in fetch_video return ydl.process_video_result(info, download=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\YoutubeDL.py", line 3135, in process_video_result self.process_info(new_info) File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\YoutubeDL.py", line 195, in wrapper return func(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\YoutubeDL.py", line 3598, in process_info self.report_error(f'unable to download video data: {err}') File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\YoutubeDL.py", line 1166, in report_error self.trouble(f'{self._format_err("ERROR:", self.Styles.ERROR)} {message}', *args, **kwargs) File "C:\***path**\data\lib\python3.12\site-packages\yt_dlp\YoutubeDL.py", line 1104, in trouble raise DownloadError(message, exc_info) yt_dlp.utils.DownloadError: ERROR: unable to download video data: HTTP Error 403: Forbidden 2026-08-15 14:24:02,994 [youtube-dl] WARNING: [youtube] [jsc:deno] Challenge solver lib script version 0.4.0 is not supported (source: python package, variant: ScriptVariant.MINIFIED, supported version: 0.8.0) 2026-08-15 14:24:03,079 [youtube-dl] WARNING: [youtube] [jsc] Remote components challenge solver script (deno) and NPM package (deno) were skipped. These may be required to solve JS challenges. You can enable these downloads with --remote-components ejs:github (recommended) or --remote-components ejs:npm , respectively. For more information and alternatives, refer to https://github.com/yt-dlp/yt-dlp/wiki/EJS 2026-08-15 14:24:03,079 [youtube-dl] WARNING: [youtube] 0QMKeNHbwbE: Signature solving failed: Some formats may be missing. Ensure you have a supported JavaScript runtime and challenge solver script distribution installed. Review any warnings presented before this message. For more details, refer to https://github.com/yt-dlp/yt-dlp/wiki/EJS 2026-08-15 14:24:03,083 [youtube-dl] WARNING: [youtube] 0QMKeNHbwbE: n challenge solving failed: Some formats may be missing. Ensure you have a supported JavaScript runtime and challenge solver script distribution installed. Review any warnings presented before this message. For more details, refer to https://github.com/yt-dlp/yt-dlp/wiki/EJS 2026-08-15 14:24:05,987 [gpodder.gtkui.services] WARNING: Cannot load cover art Traceback (most recent call last): File "C:\***path**\data\lib\python3.12\site-packages\gpodder\gtkui\services.py", line 110, in __get_cover pixbuf = GdkPixbuf.Pixbuf.new_from_file(filename) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^