Essayez-vous de vérifier si l'URL de diffusion existe?
Si oui, ce sera comme vérifier n'importe quelle autre URL si elle existe. Un moyen sera d'essayer d'obtenir l'URL en utilisant urllib
et de vérifier le code d'état retourné.
200 - Existant
Tout le reste (par exemple 404) -Doesn't existent ou vous ne pouvez pas y accéder.
Par exemple:
import urllib
url = 'http://aska.ru-hoster.com:8053/autodj'
code = urllib.urlopen(url).getcode()
#if code == 200: #Edited per @Brad's comment
if str(code).startswith('2') or str(code).startswith('3') :
print 'Stream is working'
else:
print 'Stream is dead'
EDIT-1
Tout va attraper ci-dessus si une URL existe ou non. Il ne sera pas intercepté si l'URL existe et que le lien multimédia est rompu.
Une solution possible utilisant vlc
consiste à extraire le média de l'url, à essayer de le lire et à obtenir son statut pendant la lecture. Si le média n'existe pas, nous obtiendrons une erreur qui peut être utilisée pour déterminer l'état du lien.
Avec l'URL de travail nous obtenons
url = 'http://aska.ru-hoster.com:8053/autodj'
>>>
Stream is working. Current state = State.Playing
Avec l'URL qui nous obtenons,
url = 'http://aska.ru-hoster.com:8053/autodj12345'
>>>
Stream is dead. Current state = State.Error
Voici la logique de base pour atteindre ci-dessus. Vous voudrez peut-être vérifier VLC site pour attraper d'autres types d'erreurs et de meilleures méthodes.
Avez-vous du code montrant votre tentative actuelle? Essentiellement, vous n'avez qu'à 'obtenir' le _m3u_, et gérer l'erreur/exception lorsque cela échoue. ... si vous ne parvenez pas à le collecter, ce n'est pas là ... – bryn
@bryn en fait j'écris scrapper pour télécharger tous les fichiers du site Web, mais la question n'est pas liée à la façon de le faire. Ma question est comment vérifier ces fichiers de flux pour déterminer si le flux n'est pas cassé, donc je peux supprimer des fichiers inutiles. Ok, je peux reformuler la tâche: Comment vérifier le lien vers le flux radio internet (http: //aska.ru-hoster.com: 8053/autodj) pour la disponibilité, donc la sortie devrait être comme: 'Stream fonctionne'/'Stream est mort' – Michael
@michael, vérifiez ma réponse et laissez-moi savoir si cela aide. –