[youtube-dl] python3 SSL-Fehler (CERTIFICATE_VERIFY_FAILED)

Hintergrund

Wenn Sie den Befehl youtube-dl wie folgt drücken, wird möglicherweise der Fehler "SSL: CERTIFICATE_VERIFY_FAILED" angezeigt. Ich werde die Ursache und Lösung dafür schreiben.

youtube-dl `url`

ERROR: Unable to download webpage: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1045)> (caused by URLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1045)')))

Anscheinend kann der Zertifikatpfad aufgrund eines Fehlers in pyhon3.6 nicht übergeben werden. Wenn Sie an den Details des Fehlers interessiert sind, ist der Bug-Tracker für Python3.6 hier.

Lösung 1

Der einfachste Weg ist die Kommunikation über HTTP, wenn ein Fehler in SSL vorliegt. Sie können ohne SSL-Zertifikat herunterladen, indem Sie dem Befehl die Option "--no-check-certificate" hinzufügen.

youtube-dl `url` --no-check-certificate

Lösung 2

Einige Leute denken vielleicht, dass es besser ist, mit SSL zu kommunizieren. Der Zertifikatspfad wird nicht übergeben. Sie müssen ihn also nur übergeben.

Ein Paket namens "certifi" zeigt Ihnen leicht den Speicherort des python3.6-Zertifikats an.

pip3 install --upgrade certifi

Fragen Sie einfach mit dem Python3-Interpreter nach dem Pfad.

>>> import certifi
>>> certifi.where()
'/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/certifi/cacert.pem'

Nachdem Sie den Speicherort der PEM-Datei (SSL-Zertifikat) kennen, übergeben Sie diese über den Pfad.

export SSL_CERT_FILE=/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/certifi/cacert.pem

Nachdem der Pfad übergeben wurde, können Sie den Befehl youtube-dl ohne SSL-Fehler verwenden. Da es sich um einen Export handelt, kann es zweckmäßig sein, ihn in bashrc oder zshrc zu schreiben.

Reference

StackOverflow Certificate Verification Failure for youtube-dl

SSL certificate verify failed #4816

Recommended Posts

[youtube-dl] python3 SSL-Fehler (CERTIFICATE_VERIFY_FAILED)
Python-Fehlerbehandlung
Python nicht implementiert Fehler
Der heutige Python-Fehler: getötet
[Python] für Anweisungsfehler
[Python] Memorandum zur Vermeidung von SQLAlchemy-Fehlern
Ziel Python Library Master (66) youtube-dl
Was tun, wenn in Python "SSL: CERTIFICATE_VERIFY_FAILED _ssl.c: 1056" angezeigt wird?
Fehler beim Spielen mit Python
#python python Vermeidung japanischer Syntaxfehler
Fehlerbehebung Python-Versionsprüfung
Verwenden Sie youtube_dl als Python-Modul. Anhang) Nico Nico Video HTTP 403 Fehler
Der heutige Python-Fehler: SyntaxError Nicht-ASCII-Zeichen
Deaktivieren Sie das python2.6 ssl3-Protokoll in centos6
Ziemlich schlampige Python-Fehlerbehebung
Der heutige Python-Fehler: Das Bild ist leer
Python-Fehlererkennung von Powershell ausgeführt
Lösung, wenn pip [SSL: CERTIFICATE_VERIFY_FAILED] ergibt
Seltsame und schreckliche Python-Fehlergeschichte
[Python] Was tun, wenn ein Fehler im Zusammenhang mit der SSL-Authentifizierung zurückgegeben wird?