[MacPorts] #66388: yt-dlp @2022.11.11: proxy mode is broken for some reason
MacPorts
noreply at macports.org
Sat Dec 3 15:46:37 UTC 2022
#66388: yt-dlp @2022.11.11: proxy mode is broken for some reason
--------------------------------------------+--------------------
Reporter: aeiouaeiouaeiouaeiouaeiouaeiou | Owner: (none)
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version:
Keywords: mountainlion | Port: yt-dlp
--------------------------------------------+--------------------
Example output:
{{{
[debug] Command-line config: ['--verbose', '--proxy',
'socks5://184.170.248.5:4145', 'https://youtu.be/dQw4w9WgXcQ']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error
utf-8, screen utf-8
[debug] yt-dlp version 2022.11.11 [8b64402] (pip)
[debug] Python 3.10.8 (CPython x86_64 64bit) -
macOS-10.8.5-x86_64-i386-64bit (OpenSSL 3.0.7 1 Nov 2022)
[debug] exe versions: ffmpeg 4.4.2 (fdk,setts), ffprobe 4.4.2, rtmpdump
2.4
[debug] Optional libraries: Cryptodome-3.15.0, brotli-1.0.9,
certifi-2022.09.24, mutagen-1.46.0, sqlite3-2.6.0, websockets-10.4
[debug] Proxy map: {'http': 'socks5://184.170.248.5:4145', 'https':
'socks5://184.170.248.5:4145'}
[debug] Loaded 1723 extractors
[debug] [youtube] Extracting URL: https://youtu.be/dQw4w9WgXcQ
[youtube] dQw4w9WgXcQ: Downloading webpage
WARNING: [youtube] Unable to download webpage: <urlopen error [Errno 4]
Host unreachable>
[youtube] dQw4w9WgXcQ: Downloading android player API JSON
WARNING: [youtube] <urlopen error [Errno 4] Host unreachable>. Retrying
(1/3)...
[youtube] dQw4w9WgXcQ: Downloading android player API JSON
WARNING: [youtube] <urlopen error [Errno 4] Host unreachable>. Retrying
(2/3)...
[youtube] dQw4w9WgXcQ: Downloading android player API JSON
WARNING: [youtube] <urlopen error [Errno 4] Host unreachable>. Retrying
(3/3)...
[youtube] dQw4w9WgXcQ: Downloading android player API JSON
[youtube] dQw4w9WgXcQ: Downloading iframe API JS
WARNING: [youtube] Unable to download webpage: <urlopen error [Errno 4]
Host unreachable>
[youtube] dQw4w9WgXcQ: Downloading web player API JSON
WARNING: [youtube] <urlopen error [Errno 4] Host unreachable>. Retrying
(1/3)...
[youtube] dQw4w9WgXcQ: Downloading web player API JSON
WARNING: [youtube] <urlopen error [Errno 4] Host unreachable>. Retrying
(2/3)...
[youtube] dQw4w9WgXcQ: Downloading web player API JSON
WARNING: [youtube] <urlopen error [Errno 4] Host unreachable>. Retrying
(3/3)...
[youtube] dQw4w9WgXcQ: Downloading web player API JSON
WARNING: [youtube] Unable to download API page: <urlopen error [Errno 4]
Host unreachable> (caused by URLError(Socks5Error(4, 'Host unreachable')))
ERROR: [youtube] dQw4w9WgXcQ: Unable to download API page: <urlopen error
[Errno 4] Host unreachable> (caused by URLError(Socks5Error(4, 'Host
unreachable')))
File "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/extractor/common.py", line 674, in extract
ie_result = self._real_extract(url)
File "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/extractor/youtube.py", line 3758, in _real_extract
webpage, master_ytcfg, player_responses, player_url =
self._download_player_responses(url, smuggled_data, video_id, webpage_url)
File "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/extractor/youtube.py", line 3726, in
_download_player_responses
player_responses, player_url = self._extract_player_responses(
File "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/extractor/youtube.py", line 3464, in
_extract_player_responses
raise last_error
File "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/extractor/youtube.py", line 3435, in
_extract_player_responses
pr = initial_pr if client == 'web' and initial_pr else
self._extract_player_response(
File "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/extractor/youtube.py", line 3355, in
_extract_player_response
return self._extract_response(
File "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/extractor/youtube.py", line 860, in _extract_response
for retry in self.RetryManager():
File "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/utils.py", line 5921, in __iter__
self.error_callback(self.error, self.attempt, self.retries)
File "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/extractor/common.py", line 3882, in _error_or_warning
RetryManager.report_retry(
File "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/utils.py", line 5929, in report_retry
raise e
File "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/extractor/youtube.py", line 862, in _extract_response
response = self._call_api(
File "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/extractor/youtube.py", line 538, in _call_api
return self._download_json(
File "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/extractor/common.py", line 1034, in download_content
res = getattr(self, download_handle.__name__)(url_or_request,
video_id, **kwargs)
File "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/extractor/common.py", line 998, in download_handle
res = self._download_webpage_handle(
File "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/extractor/common.py", line 868, 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 "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/extractor/common.py", line 825, in _request_webpage
raise ExtractorError(errmsg, cause=err)
File
"/opt/local/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/urllib/request.py",
line 1348, in do_open
h.request(req.get_method(), req.selector, req.data, headers,
File
"/opt/local/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/http/client.py",
line 1282, in request
self._send_request(method, url, body, headers, encode_chunked)
File
"/opt/local/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/http/client.py",
line 1328, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File
"/opt/local/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/http/client.py",
line 1277, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File
"/opt/local/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/http/client.py",
line 1037, in _send_output
self.send(msg)
File
"/opt/local/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/http/client.py",
line 975, in send
self.connect()
File "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/utils.py", line 1494, in connect
self.sock.connect((self.host, self.port))
File "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/socks.py", line 264, in connect
self._make_proxy(socket.socket.connect, address)
File "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/socks.py", line 260, in _make_proxy
setup_funcs[self._proxy.type](address)
File "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/socks.py", line 235, in _setup_socks5
raise Socks5Error(status)
yt_dlp.socks.Socks5Error: [Errno 4] Host unreachable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/extractor/common.py", line 807, in _request_webpage
return self._downloader.urlopen(self._create_request(url_or_request,
data, headers, query))
File "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/YoutubeDL.py", line 3692, in urlopen
return self._opener.open(req, timeout=self._socket_timeout)
File
"/opt/local/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/urllib/request.py",
line 519, in open
response = self._open(req, data)
File
"/opt/local/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/urllib/request.py",
line 536, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
File
"/opt/local/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/urllib/request.py",
line 496, in _call_chain
result = func(*args)
File "/Users/user/Library/Python/3.10/lib/python/site-
packages/yt_dlp/utils.py", line 1527, in https_open
return self.do_open(
File
"/opt/local/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/urllib/request.py",
line 1351, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [Errno 4] Host unreachable>
}}}
On other sites it basically displays the following error:
{{{
Unable to download webpage: <urlopen error [SSL:
CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed
certificate in certificate chain (_ssl.c:997)> (caused by
URLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED]
certificate verify failed: self-signed certificate in certificate chain
(_ssl.c:997)')))
}}}
This happens regardless of whether an HTTP or SOCKS proxy is used. Google
showed [https://github.com/yt-dlp/yt-dlp/issues/3102 a similar problem],
but does certifi use sometimes system certificates or am I
misunderstanding something?
--
Ticket URL: <https://trac.macports.org/ticket/66388>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list