Convertir m3u8 en xml

Convertir M3U8 en XML

Convertir une playlist M3U8 en XSPF ou en XML spécifique au schéma à l’aide d’outils locaux.

Convertir des fichiers M3U8 en ligne

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

Comment convertir m3u8 en fichier xml

  • Autre

Un catalogue multimédia, un appareil ou une application de montage peut nécessiter une playlist XML au lieu d’un manifest HLS. La conversion de la playlist peut également faciliter l’archivage, l’inspection ou la modification des entrées, mais la structure XML requise est déterminée par l’application destinataire.

Ce qu’est le format M3U8

M3U8 est une variante encodée en UTF-8 du format de playlist M3U, principalement utilisée pour le HTTP Live Streaming (HLS). Il s’agit d’un manifest en texte brut contenant des directives telles que #EXTINF, des URL de segments multimédias, des URL de flux variants, des informations de chiffrement, des codecs, des sous-titres et des paramètres de flux.

Les serveurs de streaming, les outils Apple HLS, FFmpeg, VLC, les systèmes IPTV, les services vidéo basés sur navigateur et les applications d’enregistrement utilisent des fichiers M3U8. Un manifest HLS référence normalement de nombreux segments .ts ou MP4 fragmentés ; il ne contient pas la vidéo elle-même.

Ce que fournit XML

XML stocke des données hiérarchiques et nommées dans un format que les applications peuvent analyser, modifier, associer à des espaces de noms et valider avec un schéma XSD. Il est utilisé pour la configuration, les catalogues, les métadonnées, RSS et les formats de playlist tels que XSPF.

XML ne possède aucun vocabulaire universel pour les playlists. Une application peut exiger <track> et <location>, une autre peut nécessiter un schéma spécifique à l’IPTV, et une autre peut accepter XSPF. Un fichier peut être un XML bien formé tout en étant inutilisable si ses éléments, attributs, espaces de noms ou son ordre ne correspondent pas au schéma cible.

Le convertir en XML avec VLC

Pour une playlist que VLC peut lire, enregistrez-la au format XSPF, un format de playlist basé sur XML :

  1. Ouvrez VLC et chargez le M3U8 via Media → Open File, ou ajoutez-le à la playlist.
  2. Ouvrez la playlist avec View → Playlist.
  3. Choisissez Media → Save Playlist to File.
  4. Sélectionnez XSPF playlist, si VLC propose un choix de format, et enregistrez le fichier avec une extension .xspf.

XSPF n’est pas une conversion XML générique. Il peut conserver les emplacements lisibles et les métadonnées de base des pistes, tout en supprimant les directives spécifiques à HLS, les relations entre segments, les données de chiffrement et les informations sur les flux variants. Ne renommez l’extension que si le programme destinataire accepte explicitement le contenu XSPF sous l’extension .xml.

Créer un fichier XML structuré local

Pour une représentation simple et indépendante de l’application, utilisez la bibliothèque standard de Python. Cette méthode conserve les directives sous forme de texte et associe chaque URI à un élément track avec la durée et le titre #EXTINF précédents :

import sys
import xml.etree.ElementTree as ET

source, destination = sys.argv[1], sys.argv[2]
root = ET.Element('playlist', {'source': source})
pending = None

with open(source, encoding='utf-8-sig') as stream:
    for raw in stream:
        line = raw.strip()
        if not line:
            continue
        if line.startswith('#EXTINF:'):
            value = line[len('#EXTINF:'):]
            duration, title = value.split(',', 1) if ',' in value else (value, '')
            pending = (duration, title)
        elif line.startswith('#'):
            directive = ET.SubElement(root, 'directive')
            directive.text = line
        else:
            track = ET.SubElement(root, 'track')
            if pending is not None:
                duration, title = pending
                track.set('duration', duration)
                if title:
                    ET.SubElement(track, 'title').text = title
                pending = None
            ET.SubElement(track, 'uri').text = line

ET.indent(root, space='  ')
ET.ElementTree(root).write(destination, encoding='utf-8', xml_declaration=True)

Exécutez-le avec :

python m3u8_to_xml.py input.m3u8 output.xml

Cette méthode crée un XML bien formé utilisant un vocabulaire personnalisé comprenant playlist, track, title, uri et directive. Il n’est pas automatiquement compatible avec VLC, un logiciel IPTV ou une autre application. Renommez les éléments et attributs pour qu’ils correspondent à la documentation ou au XSD du destinataire. ET.indent nécessite Python 3.9 ou version ultérieure ; omettez cette ligne avec les versions antérieures.

Convertir pour un schéma XML spécifique

Obtenez un exemple de fichier XML ou un XSD auprès de l’application cible avant la conversion. Associez la durée et le titre de #EXTINF aux champs correspondants du schéma, associez chaque URI suivante à l’élément URL ou emplacement requis, puis déterminez comment représenter les directives, les variantes, les sous-titres, les clés et les listes de segments. Oxygen XML Editor ou un autre éditeur XML prenant en charge les schémas peut valider le résultat avec un XSD, mais aucun éditeur ne peut déduire automatiquement un schéma de playlist inconnu.

Conversion en ligne et limites de compatibilité

Il n’existe pas de service universel et fiable de conversion M3U8 vers XML en un clic, car le vocabulaire XML cible n’est pas défini. Un convertisseur en ligne convient uniquement lorsqu’il indique précisément le schéma de sortie requis par le programme destinataire ; téléversez un manifest local et non sensible, téléchargez le résultat, puis validez-le avant utilisation. Ne soumettez pas à un service en ligne des URL de streaming privées, payantes, contenant des jetons ou temporaires. Un script Python local ou un éditeur XML de bureau est plus sûr pour ces fichiers.

Les URL relatives restent relatives après la conversion et doivent être résolues par rapport à l’emplacement du manifest d’origine. La conversion du manifest ne télécharge pas, ne déchiffre pas, ne fusionne pas et ne réencode pas les médias référencés. Les playlists variants, les clés de chiffrement, les plages d’octets, les sections d’initialisation, les codecs, les sous-titres et les relations entre segments multimédias peuvent être perdus, sauf si le schéma de destination comporte des champs permettant de les représenter.

Comparaison du format M3U8 vs XML

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

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