Convertir xml en m3u8

Convertir XML en M3U8

Convertir le channel-list XML en playlist M3U8 lorsque le fichier contient des URLs de stream lisibles.

Convertir des fichiers XML en ligne

Nous n’avons pas encore de convertisseur en ligne dédié pour XML vers M3U8, mais vous pouvez convertir des fichiers XML en ligne vers ces formats et bien d’autres :

Comment convertir xml en fichier m3u8

  • Audio

Un lecteur multimédia, une application IPTV ou un appareil de streaming peut nécessiter une playlist M3U8 lorsque sa liste de chaînes ou de médias est stockée au format XML. La conversion ne fonctionne que si le XML contient des URL de médias utilisables ; les métadonnées de programmes ou les noms de chaînes seuls ne peuvent pas créer d’entrées lisibles.

Qu’est-ce que le format XML ?

XML est un format de texte structuré pour les données hiérarchiques, notamment les catalogues de chaînes, les URL de flux, les guides électroniques de programmes XMLTV, les exports de bibliothèques multimédias et les paramètres d’application. Les fournisseurs IPTV, les gestionnaires multimédias, les systèmes d’automatisation et les applications personnalisées l’utilisent.

XML ne possède aucun schéma de playlist universel. Une URL peut être stockée dans un attribut url, un élément <url> ou un élément propre au fournisseur tel que <stream_url>. Ouvrez le fichier dans VS Code, Notepad++ ou un navigateur et identifiez l’élément répétitif correspondant à une entrée, le champ du nom affiché et le champ de l’URL avant de le convertir.

Qu’est-ce que le format M3U8 ?

M3U8 est une playlist M3U encodée en UTF-8. Une playlist étendue de chaînes ou de fichiers contient généralement un en-tête #EXTM3U, une entrée #EXTINF et une URL de média :

#EXTM3U
#EXTINF:-1,Example channel
https://example.com/live/stream.m3u8

Les applications IPTV utilisent cette structure pour répertorier les chaînes en direct ou les fichiers à la demande. La même extension .m3u8 est utilisée par les playlists multimédias HLS, qui référencent des segments et contiennent des balises telles que #EXT-X-TARGETDURATION et #EXTINF. Une liste de chaînes IPTV n’est donc pas nécessairement une playlist de segments HLS.

Comment convertir XML en M3U8

Convertir une liste de chaînes avec Python

Pour un schéma non documenté ou propre à un fournisseur, un script Python local est plus sûr et plus fiable que le chargement du fichier vers un service web, en particulier lorsque les URL contiennent des jetons ou des informations sur les abonnés.

  1. Installez Python 3 depuis python.org et placez le fichier XML dans un dossier de travail.
  2. Inspectez le XML et déterminez l’élément répétitif correspondant à une entrée ainsi que les champs contenant le nom de la chaîne et l’URL du flux.
  3. Enregistrez l’exemple suivant sous le nom xml_to_m3u8.py. Il attend des éléments <channel> et prend en charge les champs courants de nom et d’URL :
import xml.etree.ElementTree as ET

root = ET.parse('input.xml').getroot()

def text_value(node, attribute, element):
    return (node.get(attribute) or node.findtext(element) or '').strip()

with open('output.m3u8', 'w', encoding='utf-8', newline='\n') as out:
    out.write('#EXTM3U\n')
    for channel in root.findall('.//channel'):
        name = text_value(channel, 'name', 'name') or 'Unnamed channel'
        url = (channel.get('url') or
               channel.findtext('url') or
               channel.findtext('stream_url') or '').strip()
        if url:
            name = name.replace('\r', ' ').replace('\n', ' ')
            out.write(f'#EXTINF:-1,{name}\n{url}\n')
  1. Exécutez python xml_to_m3u8.py sous Windows, macOS ou Linux.
  2. Testez output.m3u8 dans VLC avec Media → Open File, puis importez-le dans l’application IPTV cible.

Remplacez .//channel et les recherches de champs lorsque le XML utilise des noms d’éléments différents, des chemins imbriqués ou des espaces de noms. Un fichier XMLTV contient généralement des enregistrements <channel id="..."> et <programme>, mais aucune URL de flux : il peut fournir des métadonnées de programmes, mais pas une playlist M3U8 lisible.

Utiliser XSLT pour un schéma documenté

Pour un traitement par lots reproductible, XSLT associe directement les champs XML connus aux lignes de la playlist. Saxon, XMLStarlet et les bibliothèques XML de Python peuvent exécuter la transformation. Un site générique de conversion de fichiers ne peut pas déterminer quels éléments propres au fournisseur représentent les noms, les URL, les groupes ou les logos.

Créer une véritable playlist HLS avec FFmpeg

Si le besoin concerne un flux HLS plutôt qu’une liste IPTV d’URL existantes, utilisez FFmpeg pour générer le fichier M3U8 et les segments multimédias :

ffmpeg -i input.mp4 -c:v libx264 -c:a aac -f hls -hls_time 6 -hls_playlist_type vod output.m3u8

Cela produit output.m3u8 et des fichiers de segments tels que output0.ts ; publiez-les ensemble dans le même répertoire. Une URL de source extraite peut remplacer input.mp4. L’option -c copy évite le réencodage, mais uniquement lorsque les codecs et le conteneur de la source sont compatibles avec les clients HLS prévus. FFmpeg convertit les médias identifiés par XML ; il ne convertit pas les métadonnées XML elles-mêmes.

Compatibilité et limites

Transformer des enregistrements XML en texte M3U8 ne télécharge pas, ne répare pas, ne transcode pas et n’authentifie pas les médias référencés. Les URL doivent rester accessibles et les flux protégés peuvent nécessiter des en-têtes HTTP, des cookies, des jetons à expiration ou la prise en charge des DRM, qu’une playlist de base ne peut pas fournir.

Écrivez le fichier en UTF-8, placez chaque URL sur sa propre ligne et supprimez les sauts de ligne des noms de chaînes. Les applications IPTV peuvent accepter des attributs tels que tvg-id, tvg-name, tvg-logo et group-title sur une ligne #EXTINF, mais il s’agit de conventions propres aux applications et non d’exigences universelles de M3U8.

Il n’existe aucun convertisseur XML vers M3U8 en ligne fiable et indépendant du schéma. Des services tels que Convertio et CloudConvert prennent en charge de nombreuses conversions générales de documents, mais n’associent pas de manière fiable un XML arbitraire propre à un fournisseur à une playlist lisible. N’utilisez un service en ligne que s’il prend explicitement en charge le schéma XML exact et que le fichier ne contient aucune URL privée, aucun identifiant ni aucune donnée d’abonné ; sinon, utilisez Python, XSLT ou FFmpeg localement.

Comparaison du format XML vs M3U8

Comparaison entre les formats XML et M3U8 sur les propriétés les plus importantes pour cette conversion.

Comparaison des formats de fichier XML et M3U8
Propriété .XML Extensible Markup Language .M3U8 HTTP Live Streaming playlist
Norme ouverte Oui Partiellement ouvert
Compression Non compressé Non compressé
Taille de fichier typique Petit Très petit
S’ouvre dans un navigateur web Oui, nativement Non
Modification ultérieure Facile Facile
Support des métadonnées Basique Basique
Lisible en texte brut Oui Oui
Idéal pour Échange de données Streaming
Date d’introduction 1998 2009
Développeur W3C Apple Inc.
Type MIME application/xml application/vnd.apple.mpegurl

La base de données ne contient actuellement aucun convertisseur de fichier xml.