Si vous appuyez sur la commande youtube-dl comme suit, vous pouvez obtenir l'erreur SSL: CERTIFICATE_VERIFY_FAILED
. J'écrirai la cause et la solution pour cela.
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)')))
Apparemment, en raison d'un bogue dans pyhon3.6, le chemin du certificat peut ne pas passer. Si vous êtes intéressé par les détails du bogue, le traqueur de bogue pour python3.6 est ici.
Le moyen le plus simple est de communiquer via HTTP en cas d'erreur SSL.
Vous pouvez télécharger sans certificat SSL en ajoutant l'option --no-check-certificate
à la commande.
youtube-dl `url` --no-check-certificate
Après tout, certaines personnes peuvent penser qu'il est préférable de communiquer avec SSL. Le chemin du certificat ne passe pas, il vous suffit donc de le transmettre.
Un paquet appelé certifi
vous dira facilement où trouver le certificat python3.6.
pip3 install --upgrade certifi
Demandez simplement le chemin avec l'interpréteur python3.
>>> import certifi
>>> certifi.where()
'/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/certifi/cacert.pem'
Maintenant que vous connaissez l'emplacement du fichier pem (certificat SSL), passez-le par le chemin.
export SSL_CERT_FILE=/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/certifi/cacert.pem
Maintenant que le chemin est passé, vous pouvez utiliser en toute sécurité la commande youtube-dl sans aucune erreur SSL. Puisqu'il s'agit d'une exportation, il peut être pratique de l'écrire en bashrc ou zshrc.
Reference
StackOverflow Certificate Verification Failure for youtube-dl
SSL certificate verify failed #4816
Recommended Posts