J'essaie de charger un fichier manifeste HLS m3u8 avec un certificat SSL inégalé. J'utilise la bibliothèque m3u8 pour Python. Mon script est le suivant:Python m3u8 ssl.CertificateError
#!/usr/bin/env python
from urllib import quote
import m3u8
import ssl
input_file = quote(raw_input("Please enter the input file path: "), safe=':''/')
#try:
manifest = m3u8.load(input_file)
#except ssl.CertificateError:
#print "WARNING SSL Error!"
for playlist in manifest.playlists:
print playlist.uri
print playlist.stream_info.bandwidth
Alors, quand je lance avec mon lien, il rapporte ssl.CertificateError car le certificat SSL est incorrect, mais je veux sauter cette vérification et seulement imprimer un avertissement SSL dans ce cas et continuez avec l'exécution du script. Est-ce possible et comment puis-je le faire?
J'ai changé mon script:
#!/usr/bin/env python
from urllib import quote
import m3u8
import requests
input_file = quote(raw_input("Please enter the input file path: "), safe=':''/')
url = requests.get(input_file, verify = False)
manifest = m3u8.load(url)
for playlist in manifest.playlists:
print playlist.uri
print playlist.stream_info.bandwidth
Mais maintenant, j'obtiens l'erreur suivante:
/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/connectionpool.py:852: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
InsecureRequestWarning)
Traceback (most recent call last):
File "./open.sh", line 10, in <module>
manifest = m3u8.load(url)
File "/usr/local/lib/python2.7/dist-packages/m3u8/__init__.py", line 44, in load
if is_url(uri):
File "/usr/local/lib/python2.7/dist-packages/m3u8/parser.py", line 337, in is_url
return re.match(r'https?://', uri) is not None
File "/usr/lib/python2.7/re.py", line 141, in match
return _compile(pattern, flags).match(string)
TypeError: expected string or buffer
Vous aurez probablement besoin de lire la chose en premier et ensuite l'envoyer à votre analyseur. Voir http://stackoverflow.com/questions/15445981/how-do-i-disable-the-security-certificate-check-in-python-requests – pvg
@pvg oui, je sais comment je peux contourner cette erreur en utilisant urllib ou demande des bibliothèques, mais je veux utiliser la bibliothèque m3u8 pour cela, et même si elle est basée sur urllib, elle ne supporte pas 'verify = False', je l'ai déjà essayé. –
Vous avez essayé quoi? Quelle est votre question, alors? L'analyseur ne vous donne pas le contrôle dont vous avez besoin, vous ne pouvez pas continuer après avoir obtenu cette exception. Il suffit de lire les données et de les transmettre à l'analyseur, quel est le problème? – pvg