Playlist O2TV.CZ script - vývoj a podpora zde ukončena - Verze k tisku +- XBMC-Kodi.cz (https://www.xbmc-kodi.cz) +-- Fórum: KODI - Doplňky (https://www.xbmc-kodi.cz/forum-kodi-doplnky) +--- Fórum: Live TV & PVR (https://www.xbmc-kodi.cz/forum-live-tv-pvr) +--- Téma: Playlist O2TV.CZ script - vývoj a podpora zde ukončena (/prispevek-playlist-o2tv-cz-script-vyvoj-a-podpora-zde-ukoncena) |
Playlist O2TV.CZ script - vývoj a podpora zde ukončena - JiRo - 27.5.2018 Úpravou původního addon O2TV Go od Štěpána Orta jsem připravil addon Playlist O2TV, který teď upravuji tak, aby běžel jako trvalá služba Kodi. Byl jsem zároveň požádán, zda by nebylo možné tento addon upravit do podoby, aby běžel zcela nezávisle na Kodi. Ačkoli jsem vždycky tvrdil, že by to problém být neměl, teprve dnes jsem si řekl, že bych to mohl zkusit. Protože jediný Linux, který mám k dispozici je ten z LibreELEC, měl jsme možnosti dost omezené, takže řešení je dosti neumělé. Chybějící knihovny jsem si nemohl nainstalovat a tak jsem je umístil přímo do adresáře scriptu. Celé řešení tak poněkud nabobtnalo, ale co je důležité, funguje. Popis řešení Vyšel jsem z připravované verze addon Playlist O2TV, takže skript umožní generovat tři typy playlistu. Hlavní kód je v souboru playlist.py, procedury interface ke službě O2TV je v souboru o2tvgo.py . Do tohoto modulu jsem, kromě drobné úpravy umožňující volbu kvality streamů a dvou oprav chyb, vůbec nezasahoval. Jak už jsem řekl, obsahuje instalace celou řadu knihoven, které by bylo možné za normálních okolností nainstalovat do systému, ale já to udělat nemůžu, ta jsem zvolil tuto cestu. Tady je možná nějaký prostor na optimalizaci, to ale přenechávám zkušenějším. Skript je možná příliš nafouklý, ale je to tím, že jsem chtěl zachovat funkce původního addon a jistou univerzálnost použití. Pokud někdo bude chtít, může si z něj zbytečnosti odpárat. Největší díl práce, protože vlastní změnu z addon na samostatně bežící script jsem vyrobil při polední kávě, je v popisu parametrů, kterými je možné běh skriptu ovlivnit. Komu je skript určen Skript je určen pro ty, kteří mají alespoň základní znalost o Linuxu. Po spuštění skript vygeneruje playlist (pokud mu nastavíte správně parametry) a skončí. Chcete-li ho používat tak, jak je to zamýšleno, musíte si například zajistit, aby se spouštěl periodicky. Kdo tedy neví, co je to cron jak se používá, tak si se skriptem moc radosti neužije. Musíte také samozřejmě vědět, co si s vygenerovanými playlisty počít. To tady řešit nebudu. Pokud tedy netušíte, jak byste skript mohli spouštět periodicky, raději si počkejte, brzy vyjde addon se stejnými funkcemi a s možností zadat jednoduše v nastavení periodické spouštění, jehož použití bude určeno právě vám. Ten ale bude fungovat pouze v Kodi. Instalace Po stažení zip souboru (je umístěn na konci tohoto příspěvku) jej rozbalíte do vybraného adresáře. Toť vše. Nepokoušejte se ho spustit, nejdřív je třeba zadat několik základních parametrů. Parametry Všechny potřebné a uživatelem zadávané parametry jsou dostupné v úvodu souboru playlist.py. Zkopíroval jsme je: Kód: ###########################################################################################################
Spuštění Pokud zadáte (a správně) výše uvedené parametry, měl by skript vygenerovat soubory podle vaší volby. Díky tomu, že jsem z původního kódu pro addon vypáral všechny věci týkající se Kodi, nemá skript žádnou interakci, ani kontroly. Po spuštění playlist buď vygeneruje nebo ne. Zatím. Plánuji v další verzi doplnit do něj informační a chybové hlášky, které se budou zapisovat do vlastního souboru logu. Co skript generuje Podle nastavení se generuje jeden ze tří typů playlistu:
Je to sice důležité, ale nehodlám se tomu v tomto postu nějak zvlášť věnovat, jak playlisty použít. Na to najdete odpověď v příslušných fórech. Ať už IPTV Simple Client nebo Tvheadend. Kdo neví, jak playlist použít, by měl začít tam a teprve potom se zajímat, jak si je tímto scriptem vygenerovat. Mé dosavadní zkušenosti a způsob provozu
Čekám na vaši zpětnou vazbu a názory. Ke stažení Aktuální verze verze Playlist O2TV, verze 0.0.4 Změny oproti předchozí verzi 0.0.3
Starší verze script Playlist O2TV 0.0.3 Změny oproti předchozí verzi 0.0.2
Upozornění! Další práce na scriptu převzal @pavuucek, najete ho na Github https://github.com/Pavuucek/O2TVKodi. V tomto vlákně už podporu nehledejte, nebudou se zde už ani objevovat nové verze. RE: Playlist O2TV script - francis - 27.5.2018 funguje krásně. kloubouk dolu :) RE: Playlist O2TV script - JiRo - 27.5.2018 @francis Na čem to pouštíš? RE: Playlist O2TV script - francis - 27.5.2018 DEBIAN JESSIE, jak píšeš ohledně id. zadal jsem tam původně jak doporučuješ. Zkusil jsem tam zadat potom můj vlatní popis. debian-jessie-srv a playlist vygenerovalo a fugnuje to. k čemu se to id pužíva v tom playlistu? RE: Playlist O2TV script - JiRo - 28.5.2018 @francis Id identifikuje zařízení. Podle id server O2TV zařízení identifikuje a registruje. Pokud se pod svým účtem k serveru připojíš s id, které server ještě nemá registrované, obsadí další pozici z maximálně 4, které máš k dispozici. Id se generuje tak, aby bylo unikátní. Případ, že by se současně objevovalo stejné id z více ip adres, může vést k nějaké restrikci ze strany provozovatele služby. Není tedy vhodné s tím příliš laborovat. BTW Výjimka v programu, která vznikne při pokusu o překročení limitu registrovaných zařízení je jedna z těch, které zatím nejsou ve verzi 0.0.2 ošetřeny. Tak opatrně... Jinak registrovaná zařízení se dají na stránce O2TV spravovat a případnou nevhodnou registraci zrušit. Viz: https://www.o2tv.cz/sprava-zarizeni/ RE: Playlist O2TV script - JiRo - 28.5.2018 Dnes jsme u Playlist O2TV script zjistil jedno omezení. Pro playlist typu3 (Tvheadend@) nelze pro streamer použít metodu wget. Stream zasílaný prostřednictvím wget Tvheadend neidentifikuje. Důvod mi není známý. Zatím to nehodlám řešit, protože metoda prostřednictvím ffmpeg funguje. Parametr _streamer_method_ tedy může být nastaven pouze na hodnotu 0 (metoda ffmpeg). Musím se přiznat, že jsem použití wget u O2TV nestačil otestovat. Streamy od O2TV Tvheadend běžně rozpozná, takže mi nepřipadalo nutné použití streamování přes wget testovat. Wget používám s následujícími parametry: wget -q -O - <STREAM> Je možné, že někde dělám chybu. Když pustím script z konzole, nějaká data z něj trvale "padají". Poradí někdo? K ffmpeg x wget obecně. Myslel jsme si, že pokud není třeba měnit kontejner, je lepší použít wget. Že bude docházet k menšímu zpoždění při přepínání kanálu. Ukázalo se ale, že se u ffmpeg, při správné skladbě a nastavení parametrů, dá zpoždění minimalizovat na rozumnou míru. Kromě toho se mi zdá (omlouvám se za ten laický názor, nejsem v této věci žádný velký odborník), že ffmpeg má přeci jen pro procházející streamy "větší pochopení" než wget. Wget jen sype přijímaná data, zatímco ffmpeg moc dobře ví, co dělá a jak se má k těmto datům chovat. Při použití wget jsem měl pocit nižší stability toku dat, která se projevovala větším množstvím drobných poruch, zatímco ffmpeg jakoby ta data "žehlil". Moc dlouho jsem to netestoval, možná to byla jen náhoda, ale každopádně ve všech přijímaných streamech, které jsme kdy přijímal a přijímám, teď používám zásadně ffmpeg. V součastné době celkem úspěšně používám následující skladbu parametrů ffmpeg pro TV streamy: ffmpeg -re -fflags +genpts -loglevel fatal -i <STREAM> -probesize 32 -c copy -f mpegts -mpegts_service_type digital_tv pipe:1 Jaký je váš názor na téma ffmpeg x wget? RE: Playlist O2TV script - mobilemanic - 28.5.2018 JiRo: O2TV Go někde dokáže sypat nepřerušovaný datový stream..? Ano, nezkoušel jsem osobně, ale obecně vypozorováno jsem měl za to, že se přehrává výhradně přes playlist s několikavteřinovými chunky... RE: Playlist O2TV script - JiRo - 28.5.2018 @mobilemanic No jo, to mi nedošlo. Někdy si prostě očividné věci nespojím dohromady. Teď se mi rozsvítilo, v requstech je uvedený streaming protocol HLS, to jsem na vědomí vzal. Ale to, že když je to HLS, tak wget ty chunky nedokáže seřadit, to už ne. Někdy fakt dělám kraviny. Ta snaha vyvolat diskusi na téma wget x ffmpeg je pak v kontextu tohoto vlákna a O2TV zcela nesmyslná. Díky za upozornění, ten wget z toho vypářu... No, to je zase den... RE: Playlist O2TV script - Mrak - 28.5.2018 V Ubuntu po instalaci Pythonu2 funčkní generování, teď to jdu zkusit hodit do TVH. Tak ať dělám, co dělám, Tvheadend@ mi nejede. Dal jsem pozor, abych měl vybráno ffmpeg a když připojím generic playlist, tak mi TVH skončí s "FAIL" při načítání Muxů. A když připojím vygenerovaný playlist napřímo, tak se normálně načte. Zkontroloval jsem i streamer.sh, zda-li opravdu je správně a vypadá, že ano. Tak nevím, kde mám chybu, jestli nějaká oprávnění či něco jiného. Jdu testnout typ 2. Typ 2 ok. Dneska už na to kašlu, zkusím laborovat zítra, proč to nešlo. Teď mi došlo, že jsem neřešil ffmpeg vůbec, takže asi víme, kde je zádrhel, se stydím.. Tak stejně nic, tak zítra. Ok, nedalo mi to.. Stydím se podruhé, já zapomněl dát chmod na streamer.sh, si připadám jak blbec dneska. RE: Playlist O2TV script - JiRo - 28.5.2018 @Mrak No je vidět, že chybí pořádný popis... Není ono třeba v Linux zadat plnou cestu ffmpeg? Párkrát jsme viděl, že někdo píše ve skriptech /usr/bin/ffmpeg. Ve skriptu Playlist je na to pamatováno v parametrech. Default je tam teď _command_ffmpeg_ ='ffmpeg'. RE: Playlist O2TV script - Mrak - 28.5.2018 To je v pohodě, já ještě editoval původní příspěvek a jak jsem napsal, chyba je mezi klávesnicí a židlí. Dneska mám vymeteno a ani základy mi nedojdou. Takže varianta ffmpeg při Tvheadend@ funguje. Akorát to zdržení přepínání není pro mě, mám radši skoro okamžité přepnutí jako při druhé variantě. RE: Playlist O2TV script - JiRo - 28.5.2018 @Mrak Jaké je to zpoždění přepínání? RE: Playlist O2TV script - Mrak - 29.5.2018 To, co už tu je na fóru několikrát, že při přepnutí kanálu to trvá cca 5s například, dle situace kvůli ffmpeg pravděpodobně. RE: Playlist O2TV script - JiRo - 29.5.2018 @Mrak Ráno jsem si něco poměřil. Hodně záleží na kvalitě vysílání. Porovnával jsme si dva sportovní kanály, jede na nich smyčka. Jeden jede aktuálně 1024x 576, tam po přepnutí najede do 1sec. V Tvheadend se objeví stream za méně jak 0,5 sec. Druhý kanál, jede ve full HD, tam je to o něco pomalejší, ale stále se to vejde do 2 sec. K optimalizaci ffmpeg volání pro HLS protokol jsem zatím nic moc nenašel. Je asi pravda, že to zpoždění záleží více než u jiných protokolů na aktuální situaci v síti, zatížení a z toho plynoucí latence. Použití metody 2 určitě přepínání zrychlí, odpadne jeden článek v řetězci, ale pokud bude zatížení sítě narůstat, naroste zpoždění zahájení přehrávání i tam. Je otázka, za kolik ti stojí problémy plynoucí z opakovaného vytváření služeb a mapování programů. Ale řešit se to dá. Je to spíše o organizaci a způsobu provozování klientů, protože tam se ty problémy projeví nejvíc. Já to tak provozoval rok a fungovalo to +- bez problémů. Na straně Tvheadend serveru se to zautomatizovat dá celkem dobře. Jak generace playlistu, mapování, tak aktualizace epg. Co nevyřeší nikdy, to budou konflikty s aktuálně běžícím klientem nebo nahráváním. Tam to zaskřípe vždy. To při použití metody Tvheadend@ ne. RE: Playlist O2TV script - Mrak - 29.5.2018 @JiRo Jasný, v případě vytížení v síti budou znát odezvy, ale nepředpokládám, že by se koukalo na více, jak třech zařízeních max. S tím, jakou metodu budu používat, ještě laboruju, beztak stále jen testuju v hyper-V. I zkouším googlit, jestli lze nějak obejít nefunkčnost wget, ale zatím bez úspěchu. Ani nefungovalo laický nápad, kdybych měl pro každý kanál zvlášť soubor m3u, na který bych se přímo odvolával u metody 3. Což jsem původně myslel, že odkázat se v m3u na m3u, ve kterém je další m3u, by nemusel být takový problém, ale skončilo to FAILem Jinak bych tedy mapování, EPG atd. měl beztak naplánované na noční hodiny, kdy nikdo TV nesleduje a klienti by byli vypnutí. Ještě budu zkoumat. Ale samozřejmě varianta Tvheadend@ s wget by byla nejlepší. A pořád je lepší Tvheadend@ s ffmpeg, logicky, i když pomalejší. RE: Playlist O2TV script - JiRo - 29.5.2018 @Mrak To ti asi uniklo, viz post od @mobilemanic (který se ve streamech vyzná) výše a moji reakci na ni. Nefunkčnost wget neřeš, wget lze opužít pouze v případě jednoho nepřerušovaného datového streamu. V případě HLS protokolu tedy použít nejde. To byl můj úlet, neuvědomil jsme si, že O2TV používá tento protokol. Dneska večer snad vydám novou verzi doplněnou podle To-Do v 1. příspěvku a tam už wget vůbec nebude. Jinak k tématu typ 3 Tvheadend@ ANO/NE. Pokud to plánuješ provozovat tak, jak píšeš, tak by použití typu 2 nemuselo být takovou komplikací. V podstatě tak to mám i já. Probouzím LibreELEC s Tvheadendem ve 3 ráno, stáhnu playlisty a dám Re-run internal graber. Vlastní generaci EPG (webgrab++) dělám jindy. Každý den si nahrávám Události a Branky body vteřiny, takže to EPG grabuji v 19:00... Ono mi taky trvá pěkně dlouho... RE: Playlist O2TV script - otava5 - 29.5.2018 JiRo / Mrak : můžu Vám poslat video a ukázku prodlev ffmpeg Antik/přímý link O2 OTT v TVH - kde ČT2 je přímý link,ČT1 je ffmpeg a ČT1(T2) je z USB tuneru RE: Playlist O2TV script - JiRo - 29.5.2018 (29.5.2018, 9:35)Mrak Napsal(a): ...laický nápad, kdybych měl pro každý kanál zvlášť soubor m3u, na který bych se přímo odvolával u metody 3... Člověče, to je tak jednoduchá myšlenka a přitom tak geniální. Jsem v práci, takže si to nemohu ověřit v TVH, ale ve VLC to funguje. Narychlo jsem si zkusil tři playlisty za sebou a VLC to v pohodě to schroupal a pustil soubor z třetího z nich. Ale co funguje ve VLC nemusí ještě fungovat v TVH... . Ty ostatně píše, že ti to nefungovalo... Hmm, to je škoda. RE: Playlist O2TV script - Mrak - 29.5.2018 @JiRo Jasný, už chápu, jsem zas četl pořádně už. Tak grabovat na sedm dní, jestli se nepletu, pro xxx kanálů, je docela brutál, mi stačí, že dva dny dopředu trvají pro 70 kanálů dost dlouho. Jo, přehrávače tenhle způsob zvládají (můj poskytovatel internetu to totiž takhle provozuje, jeden výchozí playlist, aby lidé nemuseli řešit jeho aktualizaci v případě změn a na druhý odkazuje). Bohužel v TVH se mi to při krátkém testování nepovedlo, tak buď opět dělám někde chybu a nebo to TVH nezvládá. Určitě to klidně zkuste někdo ještě, třeba přijdete na nějaké řešení. @otava5 Ano, přesně stejné zkušenosti mám já. Přímý link je prakticky okamžitý, ffmpeg má zpoždění. Tuner jsem nezkoušel, ten jsem odpojil, jakmile jsem získal OTT. Navíc mi zlobí, najednou se přestane hlásit a zasekne mi i spouštění PC, jak je připojen v USB, očividně PC čeká na nějakou odezvu a nic. Tak teď jsem spustil HTPC, zkouším programy a nějakým záhadným způsobem je přepnutí okamžité. Ale když to zkusím přímo ve virtuálu, kde běží TVH, spustit KODI, tak dochází k tomu, co ukázal @otava5. RE: Playlist O2TV script - JiRo - 30.5.2018 @Mrak Vyzkoušel jsem u kamaráda na Kodi 17.3 pod W10 nainstaloval Playlist O2TV addon, který generuje shodné playlisty jako script a zkoušeli jsme zpoždění přepínání na IPTVSimple Client. Má připojení UPC 150 Mbit/sec, čekal jsem svižné přepínání. Ale bylo to úplně stejné, jako na mém Tvheadend s ffmpeg. Průměrně do 1-2 občas i 2 - 3 sec, občas ale také pod 1 s. Když už jsme tam byl, tak jsem mu nainstaloval Tvheadend Clienta a připojil se k mému domácímu TVheadend a zkoušel přepínat kanály tam. Překvapivě špatný výsledek byl u DVB-T. Špatný a docela zajímavé chování. 1. snímek se sice objeví téměř hned <<1 sec, pak je ale prodleva 1-3 sec a teprve potom se stream rozjede. Jako další zdroj pro Tvheadend používám Sledování.cz (taky přes ffmpeg). Ve zpoždění přepínání kanálů ze Sledování jsou velké rozdíly. Většina se přepne do 1 sec, ale jsou takové, kde to trvá i 5 sec. Přepínání kanálů O2TV jde v podstatě stejně rychle jako při jejich příjmu přes IPTV Simple Clienta. Neměl jsem čas na nějakou podrobnou analýzu, ale vychází mi z toho, že ffmpeg sice nějakou desetinu sekundy přidá, ale že by byl hlavním a jediným důvodem extrémních zpoždění, tak to s jistotou tvrdit nemohu. |