Download Error When Downloading Any Course/Domain
Closed this issue · 2 comments
MohamedAbdultawab commented
I'm trying to download some economics courses but getting the following error every time, I tried downloading the complete library, download courses by url, download interactively and all with the same problem.
I tried to use it with python version 3.7 and 3.11 and still getting the same error.
Domain: Economics-Finance-Domain
Selected Domain: economics-finance-domain
Downloading Courses...
Course: Macroeconomics
Selected Course: Macroeconomics
Course URL: https://www.khanacademy.org/economics-finance-domain/macroeconomics
Generating Path Slugs...
Collecting Youtube IDs: 0.0% [> ] 0/ 8 eta [?:??:??]
Traceback (most recent call last):
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/YoutubeDL.py", line 4052, in urlopen
return self._request_director.send(req)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/networking/common.py", line 114, in send
response = handler.send(request)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/networking/_helper.py", line 204, in wrapper
return func(self, *args, **kwargs)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/networking/common.py", line 325, in send
return self._send(request)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/networking/_requests.py", line 341, in _send
raise HTTPError(res, redirect_loop=max_redirects_exceeded)
yt_dlp.networking.exceptions.HTTPError: HTTP Error 400: Bad Request
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/extractor/common.py", line 847, in _request_webpage
return self._downloader.urlopen(self._create_request(url_or_request, data, headers, query))
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/YoutubeDL.py", line 4074, in urlopen
raise _CompatHTTPError(e) from e
yt_dlp.networking.exceptions._CompatHTTPError: HTTP Error 400: Bad Request
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/YoutubeDL.py", line 1567, in wrapper
return func(self, *args, **kwargs)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/YoutubeDL.py", line 1702, in __extract_info
ie_result = ie.extract(url)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/extractor/common.py", line 715, in extract
ie_result = self._real_extract(url)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/extractor/khanacademy.py", line 39, in _real_extract
'countryCode': 'US',
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/extractor/common.py", line 1069, in download_content
res = getattr(self, download_handle.__name__)(url_or_request, video_id, **kwargs)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/extractor/common.py", line 1035, in download_handle
data=data, headers=headers, query=query, expected_status=expected_status)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/extractor/common.py", line 903, in _download_webpage_handle
urlh = self._request_webpage(url_or_request, video_id, note, errnote, fatal, data=data, headers=headers, query=query, expected_status=expected_status)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/extractor/common.py", line 860, in _request_webpage
raise ExtractorError(errmsg, cause=err)
yt_dlp.utils.ExtractorError: [khanacademy:unit] economics-finance-domain/macroeconomics/macro-basic-economics-concepts: Unable to download JSON metadata: HTTP Error 400: Bad Request (caused by <HTTPError 400: Bad Request>); please report this issue on https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using yt-dlp -U
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/khan_dl/khan_dl.py", line 348, in get_course_youtube_ids
info_dict = ydl.extract_info(unit_url, download=False)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/YoutubeDL.py", line 1556, in extract_info
return self.__extract_info(url, self.get_info_extractor(key), download, extra_info, process)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/YoutubeDL.py", line 1585, in wrapper
self.report_error(str(e), e.format_traceback())
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/YoutubeDL.py", line 1045, in report_error
self.trouble(f'{self._format_err("ERROR:", self.Styles.ERROR)} {message}', *args, **kwargs)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/YoutubeDL.py", line 984, in trouble
raise DownloadError(message, exc_info)
yt_dlp.utils.DownloadError: ERROR: [khanacademy:unit] economics-finance-domain/macroeconomics/macro-basic-economics-concepts: Unable to download JSON metadata: HTTP Error 400: Bad Request (caused by <HTTPError 400: Bad Request>); please report this issue on https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using yt-dlp -U
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/YoutubeDL.py", line 4052, in urlopen
return self._request_director.send(req)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/networking/common.py", line 114, in send
response = handler.send(request)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/networking/_helper.py", line 204, in wrapper
return func(self, *args, **kwargs)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/networking/common.py", line 325, in send
return self._send(request)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/networking/_requests.py", line 341, in _send
raise HTTPError(res, redirect_loop=max_redirects_exceeded)
yt_dlp.networking.exceptions.HTTPError: HTTP Error 400: Bad Request
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/extractor/common.py", line 847, in _request_webpage
return self._downloader.urlopen(self._create_request(url_or_request, data, headers, query))
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/YoutubeDL.py", line 4074, in urlopen
raise _CompatHTTPError(e) from e
yt_dlp.networking.exceptions._CompatHTTPError: HTTP Error 400: Bad Request
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/YoutubeDL.py", line 1567, in wrapper
return func(self, *args, **kwargs)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/YoutubeDL.py", line 1702, in __extract_info
ie_result = ie.extract(url)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/extractor/common.py", line 715, in extract
ie_result = self._real_extract(url)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/extractor/khanacademy.py", line 39, in _real_extract
'countryCode': 'US',
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/extractor/common.py", line 1069, in download_content
res = getattr(self, download_handle.__name__)(url_or_request, video_id, **kwargs)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/extractor/common.py", line 1035, in download_handle
data=data, headers=headers, query=query, expected_status=expected_status)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/extractor/common.py", line 903, in _download_webpage_handle
urlh = self._request_webpage(url_or_request, video_id, note, errnote, fatal, data=data, headers=headers, query=query, expected_status=expected_status)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/extractor/common.py", line 860, in _request_webpage
raise ExtractorError(errmsg, cause=err)
yt_dlp.utils.ExtractorError: [khanacademy:unit] economics-finance-domain/macroeconomics/macro-basic-economics-concepts: Unable to download JSON metadata: HTTP Error 400: Bad Request (caused by <HTTPError 400: Bad Request>); please report this issue on https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using yt-dlp -U
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/mohamed/.pyenv/versions/3.7.12/bin/khan-dl", line 8, in <module>
sys.exit(main())
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/khan_dl/__init__.py", line 57, in main
khan_down.download_course_interactive()
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/khan_dl/khan_dl.py", line 456, in download_course_interactive
self.get_course_youtube_ids()
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/khan_dl/khan_dl.py", line 358, in get_course_youtube_ids
unit_url, download=False, process=False
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/YoutubeDL.py", line 1556, in extract_info
return self.__extract_info(url, self.get_info_extractor(key), download, extra_info, process)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/YoutubeDL.py", line 1585, in wrapper
self.report_error(str(e), e.format_traceback())
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/YoutubeDL.py", line 1045, in report_error
self.trouble(f'{self._format_err("ERROR:", self.Styles.ERROR)} {message}', *args, **kwargs)
File "/home/mohamed/.pyenv/versions/3.7.12/lib/python3.7/site-packages/yt_dlp/YoutubeDL.py", line 984, in trouble
raise DownloadError(message, exc_info)
yt_dlp.utils.DownloadError: ERROR: [khanacademy:unit] economics-finance-domain/macroeconomics/macro-basic-economics-concepts: Unable to download JSON metadata: HTTP Error 400: Bad Request (caused by <HTTPError 400: Bad Request>); please report this issue on https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using yt-dlp -U
rand-net commented
There seems to be some major changes to the Khan Academy API. These have affected the yt-dlp library on which this app depends on. Once the bug is fixed, the app will work.
rand-net commented
Fixed in latest version