Access-Control-Allow-Origin

Erreur HLS CORS : pourquoi les flux M3U8 échouent dans le navigateur

Une erreur HLS CORS se produit lorsqu'un navigateur n'est pas autorisé à récupérer le manifeste M3U8, la clé de chiffrement ou les segments multimédias d'une autre origine. Le flux peut toujours être lu au VLC car le CORS est une règle de navigateur et non une règle multimédia. Pour tester le flux en ligne, utilisez une origine compatible CORS ou acheminez les requêtes HLS via un proxy.

Dernière mise à jour: June 20, 2026

La lecture, l'historique, les favoris, les sous-titres et la conversion du navigateur restent sur cet appareil. Les requêtes HLS passent par le proxy uniquement lorsque vous activez le proxy CORS.

Proxy intelligent CORS

Utilisez le proxy Cloudflare Worker pour les manifestes, les clés et les segments lorsque la lecture directe du navigateur est bloquée.

Aperçu vidéo

Rapport de santé du lien

Analysez les variantes, le débit binaire, la durée du segment, le cryptage et l'état live/VOD, puis échantillonnez les segments multimédias pour les liens morts. Les vérifications de segments sont limitées par le navigateur CORS, activez donc le proxy pour obtenir le résultat le plus précis.

Comment reconnaître l'échec du CORS

VérifierSymptômeSignification
Manifeste bloquéLa requête .m3u8 échoue avant le début de la lecture.L'origine a besoin du Access-Control-Allow-Origin ou le joueur a besoin d'un proxy.
Clé bloquéeLe manifeste se charge, mais la lecture chiffrée échoue.La clé AES-128 URL doit également autoriser CORS ou router via le même proxy.
Segments bloquésLa lecture démarre, puis se met en mémoire tampon ou s'arrête.Chaque demande de segment .ts ou .m4s nécessite le même chemin CORS.
VLC fonctionne, le navigateur échoueLa lecture sur le bureau fonctionne, mais pas la lecture sur le Web.Cela confirme généralement un problème CORS du navigateur, et non un flux interrompu.
Le contrôle en amont échoueLes en-têtes personnalisés déclenchent une demande OPTIONS que l'origine rejette.Évitez les en-têtes inutiles ou configurez le proxy/origine pour gérer les OPTIONS.

Comment corriger ou tester une erreur HLS CORS

  1. 1

    Vérifiez si le manifeste se charge

    Ouvrez le M3U8URL ou collez-le dans le lecteur. Si la demande de manifeste est bloquée par le CORS, la lecture ne peut même pas démarrer.

  2. 2

    Comparer avec VLC

    Si le VLC peut lire le même URL mais que le navigateur ne le peut pas, le flux est probablement accessible et l'échec est le contrôle d'accès du navigateur.

  3. 3

    Activer le proxy intelligent CORS

    Activez le proxy pour que les manifestes, les clés de chiffrement et les segments multimédia transitent tous par une réponse que le navigateur peut lire.

  4. 4

    Exécuter le rapport de santé

    Utilisez le validateur via le proxy pour vérifier si les segments sont réellement vivants au lieu d'être simplement bloqués par CORS.

  5. 5

    Ajoutez Referer uniquement lorsque cela est nécessaire

    Si l'origine utilise la protection hotlink, définissez la page d'origine URL sur Referer. N'ajoutez pas d'en-têtes personnalisés à moins que l'origine ne l'exige.

Pourquoi le HLS a besoin du CORS sur plus d'un URL

Un lecteur HLS ne récupère pas un seul fichier. Il récupère un manifeste principal, une ou plusieurs listes de lecture multimédia, des clés de chiffrement pour les flux AES-128 et de nombreux segments URL. Un seul en-tête CORS manquant sur l'une de ces ressources peut interrompre la lecture, donc tester uniquement la première réponse .m3u8 n'est pas suffisant.

Ce que Access-Control-Allow-Origin devrait faire

Pour les flux publics, l'origine peut envoyer des Access-Control-Allow-Origin pour le site hébergeant le lecteur, ou utiliser un caractère générique lorsque les informations d'identification ne sont pas impliquées. Pour les flux privés, gardez l’origine verrouillée et utilisez un point de terminaison proxy contrôlé pour les tests. Évitez de mélanger des URL directs et proxy dans la même session HLS.

Pourquoi un proxy est utile pour le débogage

Un proxy permet au navigateur de demander les actifs HLS à partir de votre propre origine autorisée tandis que le proxy récupère le véritable manifeste, la clé et le segment URL. Cela permet de savoir si un flux est interrompu ou simplement bloqué par la politique du navigateur. Cela vous donne également un endroit pour ajouter Referer ou User-Agent lorsque l'origine l'exige.

Questions fréquemment posées

Qu'est-ce qui cause une erreur HLS CORS ?

Une erreur HLS CORS se produit lorsque le navigateur ne peut pas lire le manifeste M3U8, la clé de chiffrement ou les segments multimédias car l'origine n'a pas autorisé l'accès entre origines. Le VLC peut toujours lire le flux car le CORS est appliqué par les navigateurs.

Pourquoi mon flux M3U8 est-il lu dans VLC mais pas dans Chrome ?

Le VLC n'est pas limité par les contrôles CORS du navigateur. Si le VLC fonctionne et que Chrome échoue, le flux est généralement accessible, mais le navigateur ne peut pas lire une ou plusieurs requêtes HLS sans en-têtes CORS ni proxy.

Un proxy CORS peut-il corriger la lecture M3U8 ?

Oui, pour les tests et le débogage. Le proxy doit acheminer le manifeste, les listes de lecture multimédia, les clés et les segments afin que chaque requête HLS provienne d'une origine que le navigateur est autorisé à lire.

Les segments HLS ont-ils besoin d'en-têtes CORS ?

Oui. Le manifeste, les listes de lecture enfants, les clés et chaque segment multimédia doivent être lisibles par le navigateur. Un flux peut échouer même si le fichier .m3u8 de niveau supérieur possède des en-têtes CORS corrects.

Est-ce la même chose que la protection contre les hotlinks ?

Non. Le CORS est une règle d'accès au navigateur. La protection Hotlink est une règle d'origine qui peut nécessiter un Referer ou un User-Agent spécifique. Certains flux ont les deux problèmes, vous aurez donc peut-être besoin d'un proxy plus un Referer correspondant.