Přeskočit na obsah

Převod souboru M3U8 do XML

Převeďte playlist M3U8 na XSPF nebo XML specifické pro dané schéma pomocí lokálních nástrojů.

Převádějte soubory M3U8 online

Pro převod M3U8 do XML zatím vlastní online konvertor nemáme, ale soubory M3U8 můžete online převést do těchto formátů:

Chcete převádět M3U8 na XML?

Dejte nám vědět. Podle zájmu vybíráme, které převody přidáme jako další.

Jak převést soubor m3u8 do formátu xml

Katalog médií, zařízení nebo editační aplikace může vyžadovat XML playlist namísto HLS manifestu. Převod playlistu může také usnadnit archivaci, kontrolu nebo úpravy položek, požadovaná struktura XML však závisí na aplikaci, která jej přijímá.

Co je formát M3U8

M3U8 je varianta formátu M3U playlistu kódovaná v UTF-8, která se nejčastěji používá pro HTTP Live Streaming (HLS). Jedná se o manifest v prostém textu obsahující direktivy, jako jsou #EXTINF, URL mediálních segmentů, URL variantních streamů, údaje o šifrování, kodeky, titulky a nastavení streamu.

Streamingové servery, nástroje Apple HLS, FFmpeg, VLC, IPTV systémy, video služby založené na prohlížeči a nahrávací aplikace používají soubory M3U8. HLS manifest obvykle odkazuje na mnoho segmentů .ts nebo fragmentovaných MP4; samotné video neobsahuje.

Co poskytuje XML

XML ukládá hierarchická pojmenovaná data ve formátu, který mohou aplikace analyzovat, upravovat, opatřit namespace a validovat proti schématu XSD. Používá se pro konfiguraci, katalogy, metadata, RSS a formáty playlistů, jako je XSPF.

XML nemá univerzální slovník pro playlisty. Jedna aplikace může vyžadovat <track> a <location>, jiná může vyžadovat specifické IPTV schema a další může přijímat XSPF. Soubor může být správně formovaný XML, a přesto nepoužitelný, pokud jeho elementy, atributy, namespaces nebo pořadí neodpovídají cílovému schématu.

Převod do XML pomocí VLC

U playlistu, který dokáže VLC načíst, jej uložte jako XSPF, což je playlistový formát založený na XML:

  1. Otevřete VLC a načtěte M3U8 prostřednictvím Media → Open File nebo jej přidejte do playlistu.
  2. Otevřete playlist pomocí View → Playlist.
  3. Vyberte Media → Save Playlist to File.
  4. Pokud VLC nabídne výběr formátu, vyberte XSPF playlist a uložte soubor s příponou .xspf.

XSPF není obecný převod do XML. Může zachovat přehratelné lokace a základní metadata stop, ale zahodit direktivy specifické pro HLS, vztahy mezi segmenty, údaje o šifrování a informace o variantních streamech. Příponu přejmenujte pouze tehdy, pokud přijímající program výslovně akceptuje obsah XSPF pod příponou .xml.

Vytvoření lokálního strukturovaného XML souboru

Pro jednoduchou reprezentaci nezávislou na aplikaci použijte standardní knihovnu Pythonu. Ta zachová direktivy jako text a každé URI namapuje na element track s případnou předcházející délkou a názvem z #EXTINF:

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)

Spusťte jej pomocí:

python m3u8_to_xml.py input.m3u8 output.xml

Tím se vytvoří správně formované XML s vlastní slovní zásobou playlist, track, title, uri a directive. Automaticky není kompatibilní s VLC, IPTV softwarem ani jinou aplikací. Přejmenujte elementy a atributy tak, aby odpovídaly dokumentaci nebo XSD příjemce. ET.indent vyžaduje Python 3.9 nebo novější; ve starších verzích tento řádek vynechte.

Převod pro konkrétní XML schema

Před převodem si od cílové aplikace opatřete ukázkový XML soubor nebo XSD. Namapujte délku a název z #EXTINF na odpovídající pole schématu, každé následující URI namapujte na požadovaný element URL nebo lokace a rozhodněte, jak reprezentovat direktivy, varianty, titulky, klíče a seznamy segmentů. Oxygen XML Editor nebo jiný XML editor podporující práci se schématy může výsledek validovat proti XSD, žádný editor však nedokáže automaticky odvodit neznámé schema playlistu.

Online převod a omezení kompatibility

Neexistuje univerzální a důvěryhodná služba pro převod M3U8 do XML jedním kliknutím, protože cílový slovník XML není definován. Online converter je vhodný pouze tehdy, pokud uvádí přesné výstupní schema požadované přijímajícím programem; nahrajte lokální manifest, který neobsahuje citlivá data, stáhněte výsledek a před použitím jej validujte. Soukromé, placené, tokenizované nebo dočasné streamingové URL neodesílejte do online služby. U těchto souborů je bezpečnější použít lokální Python script nebo desktopový XML editor.

Relativní URL zůstanou po převodu relativní a musí být vyřešena vzhledem k původnímu umístění manifestu. Převod manifestu nestahuje, ne-dešifruje, nespojuje ani znovu nekóduje odkazovaná média. Playlisty variant, šifrovací klíče, rozsahy bajtů, inicializační sekce, kodeky, titulky a vztahy mezi mediálními segmenty mohou být ztraceny, pokud pro ně cílové schema nemá příslušná pole.

M3U8 vs XML: srovnání formátů

Jak si formáty M3U8 a XML stojí v nejdůležitějších vlastnostech pro tento převod.

Srovnání souborových formátů M3U8 a XML
Vlastnost .M3U8 HTTP Live Streaming playlist .XML Extensible Markup Language
Otevřený standard Částečně otevřený Ano
Komprese Bez komprese Bez komprese
Typická velikost souboru Velmi malé Malé
Otevírá se ve webovém prohlížeči Ne Ano, nativně
Další úpravy Snadné Snadné
Podpora metadat Základní Základní
Čitelný jako prostý text Ano Ano
Nejvhodnější pro Streamování Výměna dat
Zavedeno 2009 1998
Vývojář Apple Inc. W3C
MIME typ application/vnd.apple.mpegurl application/xml

Informace o příponách a typech souborů poskytuje File-Extensions.org

Často kladené otázky

Co se stane s mým playlistem M3U8, když ho převedu do XML?

Položky playlistu a podporovaná metadata se přepíšou do XML; samotné zvukové ani video soubory se nepřevedou. Konkrétní elementy závisí na tom, zda cílový formát používá XSPF nebo jiné XML schéma.

Zachová si M3U8 převedené do XML relativní cesty a URL streamů?

Cesty a URL lze obvykle zachovat jako text, ale jejich význam závisí na cílovém XML schématu a softwaru, který je načítá. Relativní cesty mohou přestat fungovat, pokud playlist přesunete nebo XML formát očekává jinou strukturu cest.

Proč moje převedené M3U8 XML nefunguje v jiném přehrávači?

Soubor XML není automaticky použitelný playlist, protože různé přehrávače očekávají různá XML schémata, názvy elementů a metadata. M3U8, který je HLS manifestem, může také obsahovat tagy pro chování streamování, které obecný XML formát playlistu nedokáže reprezentovat.

Zachová převod M3U8 do XML znaky UTF-8 a pořadí položek playlistu?

Při správném zpracování playlistu může zachovat text v UTF-8 i pořadí položek. Neplatné kódování, nepodporované tagy M3U8 nebo znaky, které nejsou escapované pro XML, mohou způsobit chyby nebo změnit text.

Soubor už byl stažen

Tento soubor už byl stažen. Kvůli ochraně soukromí jsme ho hned po stažení smazali ze serveru, takže ho nejde stáhnout znovu. Pokud ho potřebujete ještě jednou, převeďte soubor znovu.