Konverze xml do m3u8

Převod souboru XML do M3U8

Převeďte channel-list XML na playlist M3U8, pokud soubor obsahuje přehratelné stream URLs.

Převádějte soubory XML online

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

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

Media player, aplikace IPTV nebo streamovací zařízení může vyžadovat playlist M3U8, pokud je jeho seznam kanálů nebo médií uložen jako XML. Konverze funguje pouze tehdy, pokud XML obsahuje použitelné URL médií; samotná metadata programů nebo názvy kanálů nemohou vytvořit přehratelné položky.

Co je formát XML

XML je strukturovaný textový formát pro hierarchická data, včetně katalogů kanálů, URL streamů, elektronických programových průvodců XMLTV, exportů knihoven médií a nastavení aplikací. Používají ho poskytovatelé IPTV, správci médií, automatizační systémy a vlastní aplikace.

XML nemá univerzální schéma playlistu. URL může být uloženo v atributu url, elementu <url> nebo v elementu specifickém pro daného poskytovatele, například <stream_url>. Otevřete soubor ve VS Code, Notepad++ nebo prohlížeči a před konverzí identifikujte opakující se element položky, pole zobrazovaného názvu a pole URL.

Co je formát M3U8

M3U8 je playlist M3U kódovaný v UTF-8. Rozšířený playlist kanálů nebo souborů běžně obsahuje hlavičku #EXTM3U, položku #EXTINF a jedno URL média:

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

Aplikace IPTV používají tuto strukturu k uvádění živých kanálů nebo souborů na vyžádání. Stejná přípona .m3u8 se používá také pro mediální playlisty HLS, které odkazují na segmenty a obsahují značky jako #EXT-X-TARGETDURATION a #EXTINF. Seznam kanálů IPTV proto nemusí být playlistem segmentů HLS.

Jak převést XML na M3U8

Převod seznamu kanálů pomocí Pythonu

U nezdokumentovaného schématu nebo schématu specifického pro daného poskytovatele je místní Python skript bezpečnější a spolehlivější než nahrávání souboru do webové služby, zejména pokud URL obsahují tokeny nebo údaje o předplatiteli.

  1. Nainstalujte Python 3 z python.org a umístěte soubor XML do pracovního adresáře.
  2. Prohlédněte XML a určete opakující se element položky a pole obsahující název kanálu a URL streamu.
  3. Uložte následující příklad jako xml_to_m3u8.py. Očekává položky <channel> a podporuje běžná pole názvu a 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. Spusťte python xml_to_m3u8.py v systému Windows, macOS nebo Linux.
  2. Otestujte output.m3u8 ve VLC pomocí Media → Open File a poté ho importujte do cílové aplikace IPTV.

Pokud XML používá jiné názvy elementů, vnořené cesty nebo jmenné prostory, nahraďte .//channel a vyhledávání polí odpovídajícími hodnotami. Soubor XMLTV běžně obsahuje záznamy <channel id="..."> a <programme>, ale neobsahuje URL streamu; může poskytnout metadata programů, nikoli přehratelný playlist M3U8.

Použití XSLT pro zdokumentované schéma

Pro opakovatelné dávkové zpracování mapuje XSLT známá pole XML přímo na řádky playlistu. Transformaci mohou spouštět Saxon, XMLStarlet a XML knihovny Pythonu. Obecný web pro konverzi souborů nedokáže určit, které elementy specifické pro daného poskytovatele představují názvy, URL, skupiny nebo loga.

Vytvoření skutečného playlistu HLS pomocí FFmpeg

Pokud potřebujete stream HLS, nikoli seznam existujících URL IPTV, použijte FFmpeg k vygenerování souboru M3U8 a segmentů médií:

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

Tím vznikne output.m3u8 a soubory segmentů, například output0.ts; publikujte je společně ve stejném adresáři. Extrahované zdrojové URL může nahradit input.mp4. Volba -c copy zabrání překódování, ale pouze tehdy, pokud jsou kodeky zdroje a kontejner kompatibilní s plánovanými klienty HLS. FFmpeg převádí média identifikovaná v XML; samotná metadata XML nepřevádí.

Kompatibilita a omezení

Převod záznamů XML na text M3U8 nestahuje, neopravuje, nepřekóduje ani neautentizuje odkazovaná média. URL musí zůstat dostupná a chráněné streamy mohou vyžadovat HTTP hlavičky, cookies, časově omezené tokeny nebo podporu DRM, kterou základní playlist nedokáže poskytnout.

Zapište soubor jako UTF-8, ponechte každé URL na vlastním řádku a odstraňte zalomení řádků z názvů kanálů. Aplikace IPTV mohou na řádku #EXTINF přijímat atributy jako tvg-id, tvg-name, tvg-logo a group-title, jedná se však o konvence aplikací, nikoli o univerzální požadavky M3U8.

Neexistuje spolehlivý online převodník XML na M3U8 nezávislý na schématu. Služby jako Convertio a CloudConvert zvládají mnoho obecných převodů dokumentů, ale nedokážou spolehlivě mapovat libovolné XML poskytovatele na přehratelný playlist. Online službu použijte pouze tehdy, pokud výslovně podporuje přesné schéma XML a soubor neobsahuje soukromá URL, přihlašovací údaje ani údaje o předplatitelích; v opačném případě použijte lokálně Python, XSLT nebo FFmpeg.

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

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

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

Databáze v současné době neobsahuje žádný program na konverzi souborů xml.