Konwertuj xml do m3u8

Konwertuj XML na M3U8

Konwertuj channel-list XML na playlistę M3U8, gdy plik zawiera odtwarzalne adresy URL strumieni.

Konwertuj pliki XML online

Nie mamy jeszcze dedykowanego konwertera online dla XML na M3U8, ale pliki XML możesz przekonwertować online na te i inne formaty:

Jak konwertować xml do m3u8

  • Audio

Odtwarzacz multimedialny, aplikacja IPTV lub urządzenie do streamingu może wymagać playlisty M3U8, gdy jego lista kanałów lub multimediów jest przechowywana jako XML. Konwersja działa tylko wtedy, gdy XML zawiera użyteczne adresy URL multimediów; same metadane programów lub nazwy kanałów nie wystarczą do utworzenia odtwarzalnych pozycji.

Czym jest format XML

XML to ustrukturyzowany format tekstowy przeznaczony do przechowywania danych hierarchicznych, w tym katalogów kanałów, adresów URL strumieni, elektronicznych przewodników po programach XMLTV, eksportów bibliotek multimediów i ustawień aplikacji. Jest używany przez dostawców IPTV, menedżery multimediów, systemy automatyzacji i aplikacje niestandardowe.

XML nie ma uniwersalnego schematu playlisty. Adres URL może być zapisany w atrybucie url, elemencie <url> lub elemencie specyficznym dla dostawcy, takim jak <stream_url>. Otwórz plik w VS Code, Notepad++ lub przeglądarce i przed konwersją zidentyfikuj powtarzający się element pozycji, pole nazwy wyświetlanej oraz pole adresu URL.

Czym jest format M3U8

M3U8 to playlista M3U zakodowana w UTF-8. Rozszerzona playlista kanałów lub plików zwykle zawiera nagłówek #EXTM3U, pozycję #EXTINF i jeden adres URL multimediów:

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

Aplikacje IPTV używają tej struktury do wyświetlania kanałów na żywo lub plików na żądanie. To samo rozszerzenie .m3u8 jest używane przez playlisty multimediów HLS, które odwołują się do segmentów i zawierają znaczniki takie jak #EXT-X-TARGETDURATION oraz #EXTINF. Lista kanałów IPTV nie jest więc koniecznie playlistą segmentów HLS.

Jak przekonwertować XML do M3U8

Konwertowanie listy kanałów za pomocą Python

W przypadku nieudokumentowanego schematu lub schematu specyficznego dla dostawcy lokalny skrypt Python jest bezpieczniejszy i bardziej niezawodny niż przesyłanie pliku do usługi internetowej, szczególnie gdy adresy URL zawierają tokeny lub informacje o subskrybentach.

  1. Zainstaluj Python 3 ze strony python.org i umieść plik XML w folderze roboczym.
  2. Sprawdź XML i ustal, który element się powtarza oraz które pola zawierają nazwę kanału i adres URL strumienia.
  3. Zapisz poniższy przykład jako xml_to_m3u8.py. Oczekuje on pozycji <channel> i obsługuje typowe pola nazwy oraz adresu 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. Uruchom python xml_to_m3u8.py w systemie Windows, macOS lub Linux.
  2. Przetestuj plik output.m3u8 w VLC za pomocą opcji Media → Open File, a następnie zaimportuj go do docelowej aplikacji IPTV.

Zastąp .//channel oraz odwołania do pól, jeśli XML używa innych nazw elementów, zagnieżdżonych ścieżek lub przestrzeni nazw. Plik XMLTV zwykle zawiera rekordy <channel id="..."> i <programme>, ale nie zawiera adresu URL strumienia; może dostarczać metadane programów, lecz nie odtwarzalną playlistę M3U8.

Używanie XSLT w przypadku udokumentowanego schematu

W przypadku powtarzalnego przetwarzania wsadowego XSLT bezpośrednio mapuje znane pola XML na wiersze playlisty. Do uruchomienia transformacji można użyć Saxon, XMLStarlet oraz bibliotek XML języka Python. Ogólna usługa konwersji plików nie jest w stanie określić, które elementy specyficzne dla dostawcy reprezentują nazwy, adresy URL, grupy lub logotypy.

Tworzenie prawdziwej playlisty HLS za pomocą FFmpeg

Jeśli wymagany jest strumień HLS, a nie lista IPTV zawierająca istniejące adresy URL, użyj FFmpeg do wygenerowania pliku M3U8 i segmentów multimediów:

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

Spowoduje to utworzenie pliku output.m3u8 oraz plików segmentów, takich jak output0.ts; opublikuj je razem w tym samym katalogu. Wyodrębniony adres URL źródła może zastąpić input.mp4. Opcja -c copy pozwala uniknąć ponownego kodowania, ale tylko wtedy, gdy kodeki źródłowe i kontener są zgodne z docelowymi klientami HLS. FFmpeg konwertuje multimedia wskazane w XML; nie konwertuje samych metadanych XML.

Zgodność i ograniczenia

Zmiana rekordów XML na tekst M3U8 nie powoduje pobrania, naprawy, transkodowania ani uwierzytelnienia wskazanych multimediów. Adresy URL muszą pozostać dostępne, a chronione strumienie mogą wymagać nagłówków HTTP, plików cookie, wygasających tokenów lub obsługi DRM, których podstawowa playlista nie zapewnia.

Zapisz plik jako UTF-8, umieść każdy adres URL w osobnym wierszu i usuń podziały wierszy z nazw kanałów. Aplikacje IPTV mogą akceptować atrybuty takie jak tvg-id, tvg-name, tvg-logo i group-title w wierszu #EXTINF, ale są to konwencje aplikacji, a nie uniwersalne wymagania M3U8.

Nie istnieje niezawodny, niezależny od schematu konwerter XML do M3U8 online. Usługi takie jak Convertio i CloudConvert obsługują wiele ogólnych konwersji dokumentów, ale nie mapują niezawodnie dowolnego XML dostawcy na odtwarzalną playlistę. Korzystaj z usługi online tylko wtedy, gdy wyraźnie obsługuje ona dokładny schemat XML, a plik nie zawiera prywatnych adresów URL, danych uwierzytelniających ani danych subskrybentów; w przeciwnym razie użyj lokalnie Python, XSLT lub FFmpeg.

Porównanie formatu XML z M3U8

Jak formaty XML i M3U8 wypadają w porównaniu pod względem najważniejszych cech dla tej konwersji.

Porównanie formatów plików XML i M3U8
Cecha .XML Extensible Markup Language .M3U8 HTTP Live Streaming playlist
Otwarty standard Tak Częściowo otwarty
Kompresja Bez kompresji Bez kompresji
Typowy rozmiar pliku Mały Bardzo mały
Otwiera się w przeglądarce internetowej Tak, natywnie Nie
Dalsza edycja Łatwy Łatwy
Obsługa metadanych Podstawowy Podstawowy
Czytelny tekstowo Tak Tak
Najlepszy do Wymiana danych Streaming
Wprowadzono 1998 2009
Twórca W3C Apple Inc.
Typ MIME application/xml application/vnd.apple.mpegurl

Baza danych obecnie nie zawiera żadnych bezpośrednich linków do konwerterów plików xml.