Gdy odtwarzacz IPTV nie chce odtwarzać twoich kanałów, źle może być w co najmniej czterech rzeczach: w samym odtwarzaczu, u dostawcy, w twojej sieci albo w pliku listy. Debugowanie układu, w którym wszystkie cztery są niewiadomymi, to udręka, a większość internetowych wątków o naprawie to ludzie błędnie zgadujący, która rzecz jest winna.

Najszybsze wyjście to wyłączenie trzech z czterech zmiennych za jednym zamachem, podając odtwarzaczowi sprawdzoną listę złożoną z darmowych publicznych strumieni testowych. Jeśli te grają, odtwarzacz działa — wszystko, co dalej zawodzi, jest po stronie reszty. Jeśli nie grają, zawęziłeś sprawę do odtwarzacza albo twojej sieci, a kolejne kroki są bardzo różne.

Generator przykładowej listy M3U na tej stronie produkuje dokładnie taką listę. To garść dopracowanych strumieni utrzymywanych przez Mux, Apple, Unified Streaming, NASA, France 24, DW i kilku innych — źródeł, które są stabilne od lat, specjalnie dlatego, że na całym świecie używa się ich jako materiałów testowych. Wybierasz kategorie, dostajesz stabilny URL, wklejasz go w odtwarzacz.

Ten przewodnik tłumaczy, co ujawnia każdy test, co robić, gdy coś zawiedzie, i na które strumienie postawić w jakim pytaniu.

Cztery podpisane prostokąty — odtwarzacz, sieć, dostawca, lista — widoczne na początku. Gdy z sieci nadchodzi sprawdzona lista testowa, trzy z czterech prostokątów są kolejno skreślane, zostawiając tylko odtwarzacz jako niewiadomą.

Sprawdzona lista usuwa trzy z czterech zmiennych za jednym zamachem — zostaje odtwarzacz.

Jak naprawdę wygląda „dobra lista testowa”

Na GitHubie znajdziesz dziesięć tysięcy list „darmowe IPTV M3U”. Większość z nich jest w 80% martwa w ciągu pół roku. To nie są materiały testowe — to wyskrobane listy tego, kto akurat danego dnia był publicznie dostępny, a linki gniją z prędkością internetu.

Użyteczna lista testowa ma inne właściwości:

  • Stabilne źródło. Host zobowiązuje się utrzymywać strumień, bo to opublikowane demo. Mux, Apple, Unified Streaming, nadawcy z publicznymi transmisjami na żywo.
  • Mała. Od pięciu do dziesięciu kanałów, nie pięć tysięcy. Testujesz hydraulikę odtwarzacza, a nie wyczerpująco każdą ścieżkę kodu.
  • Mieszana. Demo w stylu VOD (Big Buck Bunny), strumień wiadomości na żywo HLS (NASA, France 24), strumień tylko audio, opcjonalnie celowo zepsuty wpis. Każda pozycja testuje inną ścieżkę kodu wewnątrz odtwarzacza.
  • Bez danych logowania. Lista testowa, która wymaga twojego loginu, nie jest listą testową; jest tym, co właśnie próbujesz zdiagnozować.

Generator dokładnie taką wystawia. Dwa URL-e, które wklejasz w odtwarzacz, dają różne powierzchnie testowe, ale domyślny zestaw (filmy demonstracyjne + wiadomości na żywo, z włączonymi logami i tytułami grup) pokrywa zdecydowaną większość pytań „czy ten odtwarzacz jest zepsuty”.

Co ujawnia każdy test

Gdy lista testowa zagra w odtwarzaczu, pewne pytania stają się odpowiadalne — wcześniej nie były.

Big Buck Bunny / Tears of Steel / Apple BipBop grają

To są strumienie HLS z kodowaniem H.264 o bardzo małej rozdzielczości obrazu. Jeśli grają płynnie, odtwarzacz potrafi:

  • Otworzyć URL HLS.
  • Zdekodować H.264.
  • Wyrenderować obraz na tym, na czym platforma renderuje.
  • Wysterować wyjście audio.

Jeśli odtwarzacz oblewa to, awaria jest fundamentalna. Albo stack multimedialny odtwarzacza w ogóle się nie inicjalizuje, albo sieć nie dochodzi do hosta strumienia. Oba są łatwe do zweryfikowania: otwórz ten sam URL w przeglądarce na komputerze. Referencyjne strumienie HLS od Apple grają wprost w Safari; Big Buck Bunny zagra w każdej przeglądarce z HLS.js.

NASA TV / France 24 / France 24 / DW grają

To są strumienie HLS na żywo. Inna ścieżka kodu niż VOD. Jeśli filmy demonstracyjne grają, a wiadomości na żywo nie, odtwarzacz ma problem z którąś z tych rzeczy:

  • Ciągłe (nie-DVR) feedy HLS, w których manifest aktualizuje się na żywo.
  • Długie życie gniazda (strumienie na żywo trzymają połączenie otwarte; VOD kończy się i zamyka).
  • Sieć utrzymująca połączenie przy życiu (niektóre firewalle ścinają długo trwające TCP).

Wiadomości na żywo zwykle używają też nieco innych kodeków i drabin bitrate'u niż dema VOD, więc objaw „wiadomości na żywo padają, dema grają” może być też problemem kodekowym. Testowy strumień Apple HEVC w generatorze to wyłapuje — jeśli problemem jest HEVC, ten też padnie.

Logo kanałów pojawiają się

Generator dorzuca URL-e tvg-logo wskazujące na Wikimedia. Jeśli masz włączone logo w formularzu, a odtwarzacz ich nie pokazuje, oznacza to, że:

  • Albo ich nie pobiera (niektóre odtwarzacze pobierają logo dopiero w reakcji na akcję użytkownika).
  • Albo pobiera, ale nieprawidłowo je renderuje (oczekuje innego formatu obrazu).
  • Albo padają na konkretnym łańcuchu certyfikatu lub CDN-ie Wikimedia.

To rzadko bywa rzeczywistym blokerem, ale potwierdza, że sieć dociera do innej domeny niż same strumienie. Przydatne, gdy ścigasz blokadę na warstwie sieciowej.

Tytuły grup renderują się poprawnie

Domyślnie włączony atrybut group-title wkłada każdy strumień do folderu kategorii. Jeśli twój odtwarzacz pokazuje wszystko jako jedną płaską listę, mimo że grupy są włączone, odtwarzacz nie respektuje group-title — częste w starszych odtwarzaczach, rzadsze w nowoczesnych. To zwykle nie jest fatalna wada; oznacza tylko, że przy imporcie prawdziwego dostawcy z tysiącami kanałów będziesz nawigować przez ulubione.

Celowo zepsute strumienie zwracają czytelny błąd

Kategoria „celowo zepsute” jest opcjonalna. Po włączeniu lista zawiera URL z błędem DNS i URL zwracający HTTP 404. Dobry odtwarzacz pokazuje czytelny komunikat („strumień niedostępny” / „404 nie znaleziono”) i pozwala wrócić do działającego kanału. Zły odtwarzacz zawiesza się, crashuje albo po cichu idzie dalej, nie mówiąc, który kanał był zły.

Ta kategoria łapie realny problem ergonomiczny: gdy w końcu zaimportujesz listę 5000 kanałów od dostawcy, mniej więcej 5–10% w danej chwili będzie martwych. Odtwarzacz, który zawiesza się na martwych kanałach, jest na granicy używalności; ten, który pokazuje błąd i daje iść dalej, jest w porządku. Lepiej wiedzieć już teraz.

Publiczne strumienie testowe, które warto znać

Katalog generatora jest dopracowany, ale jeśli chcesz znać URL-e bazowe, oto krótka lista. Te są stabilne od lat (większość od dekady albo dłużej):

  • Big Buck Bunnyhttps://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8 (materiały testowe Mux).
  • Tears of Steelhttps://demo.unified-streaming.com/k8s/features/stable/video/tears-of-steel/tears-of-steel.ism/.m3u8 (demo Unified Streaming).
  • Apple BipBop — referencyjne strumienie HLS od Apple. Wariant „advanced” testuje HEVC.
  • NASA TVhttps://ntv1.akamaized.net/hls/live/2014075/NASA-NTV1-HLS/master.m3u8.
  • France 24 po angielskuhttps://live-hls-web-aje.getaj.net/AJE/01.m3u8.
  • France 24, DW News — HLS na żywo hostowane przez nadawców.

Każdy z tych URL-i możesz wkleić do odtwarzacza wprost jako „listę” z jednym kanałem, ale mała lista z kilkoma kanałami to bardziej rzetelny test (uruchamia UI listy i ścieżkę przełączania kanałów, czego pojedynczy URL nie robi).

Po pomyślnym teście

Jeśli lista testowa gra poprawnie, problemem nie jest odtwarzacz. Następną rzeczą do sprawdzenia jest sieć — czy z tego samego urządzenia dociera do IP twojego dostawcy? Niektórzy dostawcy IPTV są blokowani na poziomie operatora w pewnych krajach.

Najtańszy test sieciowy: idź do testera listy M3U w przeglądarce na komputerze, wklej prawdziwy URL dostawcy i zobacz, czy strumienie odpowiadają. Tester M3U sprawdza je z serwerowego IP, które prawie na pewno nie jest blokowane, więc rozjazd „tester mówi tak, mój odtwarzacz mówi nie” potwierdza, że problem jest w twojej lokalnej sieci.

Jeśli sieć jest w porządku, problem leży w liście lub danych dostawcy. Diagnostykę tego załatwia weryfikator danych Xtream (jeśli masz dane w stylu Xtream) albo po prostu ponowne wklejenie URL-a do testera M3U, by potwierdzić, że strumienie żyją.

Po nieudanym teście

Jeśli lista testowa nie gra, problem jest gdzieś przed jakimkolwiek dostawcą — i warto być konkretnym co do tego, który test padł:

  • Żaden strumień nie gra, brak komunikatu o błędzie. Odtwarzacz się nie inicjalizuje. Sprawdź, czy ma potrzebne kodeki (niektóre aplikacje na smart TV przychodzą z mniejszym zestawem kodeków, niż się spodziewasz). Spróbuj innego odtwarzacza na tym samym urządzeniu — VLC albo zwykły odtwarzacz multimediów odtworzy te strumienie, jeśli cokolwiek je odtworzy.
  • Strumienie grają w innym odtwarzaczu na tym samym urządzeniu, a w twoim nie. To bug odtwarzacza. Zgłoś się do dewelopera z URL-em listy testowej — to sprawdzony materiał, znika niepewność.
  • Żaden strumień nie gra ANI w żadnym innym odtwarzaczu. Prawie na pewno sieć. Portal przechwytujący, bloker na poziomie DNS (niektóre antyreklamowe usługi DNS blokują CDN-y streamingowe), firewall korporacyjny. Wypróbuj tę samą listę w innej sieci — najszybsza próba zdrowego rozsądku to udostępnienie internetu z telefonu.
  • Strumienie grają, ale lista kanałów jest pusta lub dziwna. Odtwarzacz nieprawidłowo parsuje M3U. Sprawdź zawartość listy przez „Wyświetl źródło” albo natywny podgląd przeglądarki, by potwierdzić, że plik jest dobrze sformułowany (nagłówek #EXTM3U, a potem na zmianę linie #EXTINF i URL-e). Lista z generatora jest poprawna z definicji; jeśli odtwarzacz ją odrzuca, ma surowy parser, który może nie lubić wariantów M3U dostarczanych przez prawdziwych dostawców.

Dlaczego nie hostujemy tych strumieni

Klipa nie hostuje żadnego ze strumieni z listy testowej. To dema i transmisje stron trzecich. Konkretnie:

  • Nie płacimy za pasmo. Każde odtworzenie tych strumieni ciągnie z CDN-u strony trzeciej, nie z naszego.
  • Nie proxujemy ani nie przepisujemy. URL-e w liście wskazują wprost na stronę trzecią; odtwarzacz łączy się z nią bezpośrednio.
  • Nie śledzimy odtworzeń. CDN strony trzeciej widzi odtworzenie, my nie.

Drugą stroną medalu jest to, że dowolny pojedynczy strumień może paść. Jeśli jeden kanał nie ładuje się po imporcie listy testowej, przełącz się na inny z tej samej listy, zanim założysz, że odtwarzacz jest zepsuty. Wiele strumieni z niezależnych źródeł to celowy zabieg projektowy.

Co po tym, jak to zadziała

Gdy potwierdzisz, że odtwarzacz działa na przykładowej liście, import prawdziwego dostawcy to osobny problem. Strategia: jeśli oba działają, jesteś w domu. Jeśli przykładowa działa, a twój dostawca nie, weryfikator danych Xtream i tester M3U powiedzą ci, na który błąd po stronie dostawcy trafiasz (uwierzytelnienie, wygaśnięcie, martwe strumienie, zablokowane IP).

Klipa przyjmuje URL przykładowej listy bezpośrednio — wklej go jako źródło M3U, a dostaniesz dokładnie te kanały, które wyrzuca generator. Tak samo w każdym innym odtwarzaczu obsługującym M3U.