Certains se cachent la tête dans le sable quand il est question de technique, et condamnent dans l'ignorance. Je vois mal un jugement à propos d'une bavure médicale, même pour le meilleur spécialiste en droit, qui pourrait être rendu sans recours à des médecins experts capables de comprendre le sujet "technique". En IPTV, pareil. Mais là le sujet est plus simple, à la portée de qui s'en donne la peine.
Alors voici un petit résumé que j'espère pédagogique sur ce qu'il se passe quand on clique une chaîne pour la voir.
Que fait le lecteur audio/vidéo depuis la page de votre navigateur ?
Prenons l'exemple d'un accès à la chaîne canadienne "Ici RDI".
Cliquer la chaîne initialise avec l'adresse http de la chaîne (url), la source du lecteur, qui est simple un élément HTML de la page.
Quand on clique "play" ou automatiquement en mode "autoplay", le lecteur envoie au serveur de streaming de la chaîne qui est à l'url donnée, une requête pour avoir le flux. C'est géré par le http.
L'échange se passe uniquement entre le PC de n'importe quel utilisateur avec n'importe quelle adresse IP, et le serveur de streaming. Le serveur de tvradiozap qui lui a seulement servi à obtenir la page, ne joue plus aucun rôle.
Voici ce qui est envoyé au début par le navigateur de l'utilisateur (il y a plus d'infos envoyées mais on se limite à celles essentielles et communes à tous les navigateurs chrome, firefox...).
Sens : navigateur vers serveur de streaming
url https://rcavlive.akamaized.net/hls/live/704025/xcanrdi/master.m3u8
method GET
Accept */*
Origin http://tvradiozap.free.fr
Referer http://tvradiozap.free.fr/
On voit notamment l'url en ".m3u8" demandée au serveur akamaized.net du service de streaming Akamai, et qu'Akamai est informé de l'origine de la demande par les champ "origin" et "referer" qui indique que la page d'origine est de tvradiozap.
Et voici la réponse,
Sens : Serveur de streaming vers navigateur
url https://rcavlive.akamaized.net/hls/live/704025/xcanrdi/master.m3u8
method GET
statusCode 200
statusLine HTTP/1.1 200 OK
Access-Control-Allow-Credentials true
Access-Control-Allow-Headers origin,range,hdntl,hdnts
Access-Control-Allow-Origin http://tvradiozap.free.fr
Access-Control-Expose-Headers Server,range,hdntl,hdnts,Akamai-Mon-Iucid-Ing,Akamai-Mon-Iucid-Del,Akamai-Request-BC
Content-Type application/x-mpegURL
X-Akamai-Server Akamai-SMT
Le serveur d'Akamai, service de streaming auquel "Ici RDI" a confié sa chaîne, nous répond donc :
- "la requête a réussi" (status code 200)
- l'origine "tvradiozap.free.fr" est autorisée à accéder (Access-Control-Allow-Origin http://tvradiozap.free.fr)
- c'est du mpeg (Content-Type application/x-mpegURL)
et il nous envoie le fichier m3u8 demandé.
Le fichier m3u8 contient une "liste de lecture" des flux HLS, avec différents débits que le lecteur choisit en fonction de son contexte (par exemple, inutile de demander du full HD si on est sur un smartphone, encore moins si le débit de la liaison mobile est faible).
Une fois que le lecteur a fait son choix, il demande à Akamai un second fichier m3u8 pour le flux qu'il a choisi, et même réponse qu'au-dessus d'Akamai qui l'accepte et renvoie le nouveau fichier m3u8. Mais maintenant ce fichier contient les adresses réelles de flux, des trames ts. Le navigateur va alors les demander.
Même topo pour la demande du navigateur de l'utilisateur :
method GET
url https://rcavlive.akamaized.net/hls/live/704025/xcanrdi/20231127T013310/master_2000/00037/master_2000_01544.ts
Accept */*
Origin http://tvradiozap.free.fr
Referer http://tvradiozap.free.fr/
et même topo pour la réponse d'Akamai :
method GET
statusCode 200
statusLine HTTP/1.1 200 OK
url https://rcavlive.akamaized.net/hls/live/704025/xcanrdi/20231127T013310/master_2000/00037/master_2000_01544.ts
Access-Control-Allow-Credentials true
Access-Control-Allow-Headers origin,range,hdntl,hdnts
Access-Control-Allow-Origin http://tvradiozap.free.fr
Le serveur de streaming référencé par tvradiozap est "officiel" c'est à dire autorisé par la chaîne à fournir son flux. Et Akamai nous dit clairement qu'il accepte de servir le flux au navigateur qui le demande depuis la page obtenue du domaine
http://tvradiozap.free.fr .
Le service de streaming nous sert effectivement la chaîne, en toute connaissance de cause, ce qu'il pourrait pourtant refuser à l'
origine "tvradiozap.free.fr", comme par exemple le font Canal+ pour ses chaînes gratuites, et d'autres.
Le contenu fourni est l'original, pas une copie, pas un re-streaming, tout est fait de façon transparente, il n'y a aucun truandage, aucun serveur intermédiaire, et le site de tvradiozap n'a aucun rôle dans ces échanges entre utilisateur et serveur de streaming.
Les adresses permettant les accès aux flux ne sont pas les adresses des chaînes (sauf rares cas où elles streament elles-mêmes), mais celles de leurs serveurs de streaming, issus de services de sociétés importantes qui ont pignon sur rue. Ce ne sont pas des serveurs douteux. Généralement ce sont les mêmes serveurs que ces chaînes utilisent pour les lecteurs audio/vidéos des pages de leurs propres sites.
Sauf accident toujours possible, ces serveurs de streaming sont autorisés par les chaînes à fournir leurs flux. Si donc le serveur consent à fournir ce flux à tous ceux qui le demandent, et que la chaîne ne le veut pas, c'est à elle de régler ça avec les services qu'elle a mandatés pour distribuer son flux.
S'il s'avérait qu'un de ces serveurs ne soit plus mandaté et continue à distribuer une chaîne, c'est encore du ressort de la chaîne de régler ça avec les services de streaming qu'elle a mandatés pour distribuer ces flux, mais en plus concernant tvradiozap, il y a une adresse de contact où la chaîne de bonne foi peut demander son retrait du site et ce sera fait.