18.1.2025, 14:59
(Tento příspěvek byl naposledy změněn: 28.2.2025, 17:07 uživatelem JiRo.
Důvod úpravy: Doplnění informace
)
Toto téma je určené k výměně informací týkající se využití iVysílání, tzn. internetové podoby vysílání České televize, jako zdroje pro Live TV funkce a doplňky v Kodi (např. IPTV Simple Client) nebo i mimo něj (např. Tvheadend). A to jak pro využití jako zdroje streamů televizních kanálů, tak i dalších informací, typicky epg, resp. xmltv. Vytvořil jsem toto téma zejména proto, abychom diskusemi neplevelili téma iVysílání v subfóru Video doplňků, které se sice zabývá podobnou problematikou, ale s ohledem na způsoby i cíle řešení poměrně dost odlišnou.
Řešení pro příjem kanálů Sport Plus v Tvheadend a jeho prostřednictvím v Kodi
Abych byl konkrétní popíši stručně to, jak já kanály Sport Plus (Sport+), případně jiné kanály, které ve stejné logice iVysílání poskytuje (např. přenosy ze Senátu Parlamentu ČR, případně jiné pořady) přijímám a zpracováván. Pro potřeby popisu budu tyto kanály označovat jako iVysilani+, a spadají tedy do nich jak kanály programu Sport Plus, tak případně i kanály obsahující další vysílání (viz výše).
Vycházím z obvyklého modelu řešení (login - playlist - epg - streamer), které používám u ostatních OTT služeb, který jsem ale pro potřeby iVysilani+ jen trochu zjednodušil:
Kanály iVysilani+
Vysílání kanálů iVysilani+ probíhá poměrně specificky. I když je program vysílání těchto kanálů znám často i několik dnů dopředu, to, na kterém "fyzickém kanálu" budou nakonec jednotlivé pořady vysílány, se určí často jen několik hodin před tím. Někdy třeba 12, ale jindy také jen až jednu hodinu před zahájením vysílání pořadu. Proto tedy ani není možné vytvářet EPG v Tvheadend dříve než v okamžiku, kdy je toto přiřazení známo. Ve službě iVysílání jsou pro tyto kanály vytvořeny fixní interní kanály, které se pak využívají podle vcelku neznámé logiky. Dosud bylo zjištěno, že iVysilani+ má vytvořeno (resp. používá) množinu celkem 17 kanálů, které jsou označeny CH_25 až CH_31, CH_MOB_01 a CH_MP_01 až CH_MP_08. Dá se říci, že o tyto identifikace je celé řešení opřené. Používajíc se jak pro názvy služeb Tvheadend, tak i jako identifikace pro epg (tedy v xmltv). Vlastní jména kanálů iVysilani+, je ale možné si zvolit podle vlastního uvážení, jen je s tím třeba pak v další logice řešení počítat.
Já jsem si těch 17 kanálů v Tvheadend označil jendoduše, jak CT iVysilani+ 1 až CT iVysilani+ 17. Vidět je to na následujícím screenshotu. Všimněte si, že všechny kanály jsou označené jako Disabled, protože v tuto chvíli žádné epg pro tyto kanály ještě není známo, a to hlavně proto, že v tento den nejsou ani žádné pořady iVysilani+ v plánu vysílání. V logice pojmenování kanálů i číslování kanálů pokračuji podle toho, jak označuji jiné kanály České televize. Tady jenom dodám, že já ty klasické kanály přijímám primárně z DVB-T vysílání, jako zálohu používám vysílání OTT služby Sledovanitv.cz. Nepoužívám tedy pro ně příjem ze služby iVysilání.
Playlist iVysilani+
Jak už jsme uvedl výše, playlist negeneruji, vytvořil jsme ho ručně. Dá se samozřejmě editorem upravit, ale je třeba s případnými změnami počítat v logice dalšího zpracování. Zejméně ve scriptu epg.py a jeho konfiguračním souboru. config.py. Má současná produktivní verze vypadá takto:
Soubor je samozřejmě obsažen v níže uvedeném zipu.
Generace EPG
Jak už jsem uvedl, generátor epg používá data z hbbtv serveru České televize. Lze použít i data přímo ze služby iVysílání, vyjde to přibližně nastejno. Jen tada data z hbbtv se zpracovávají lépe, protože jsou k diposzici přímo ve formátu json. Generace se spouští sciptem epg.sh, je tedy třeba toto spouštění v systému naplánovat. Jak často, to je otázka, já osobně používám 30 minutovou periodu, jiní používají 15 minut, ale je to asi jedno. Zátěž systému není nijak zásadní, píše nepatrná, takže jde jenom o to, jak rychle se případná změna v epg promítne do vašeho systému. Kritické to může být v případě, kdy se epg pro pořad objeví až těsně před zahájením jeho vysílání. Zatím jsem zanamenal nejkratší čas přibižně jednu hodinu. Většinou je ale těch hodin několik.
Generaci provádí ve scriptu spuštění python program epg.py. Generuje se soubor xmltv a do Tvheadend se dostane prostřednictvím externího xmltv graberu. Je tedy třeba mít tento graber v Tvheadend povolený. K uložení se ve scriptu používá aplikace socat. Není-li k dispozcii (např. v *ELEC systémech instalovaná není), je místo ní možné použít např. program curl. Detailní popis python scriptu epg.py v samostatné kapitole.
Python script epg.py
Tento script, mimo vlastní generaci xmltv, provádí jednu důležitou akci, v rámci které ty kanály, které nemají definovaný pořad (tedy epg), označí v Tvheadend jako Disabled. To má za následek, že se epg pro tyto kanály v Kodi nezobrazí. Výrazně to pomáhý v přehlednosti epg. Má to ale jednu potíž, že změna stavu Enabled/Disabled kanálu se do epg v Kodi promítá nespolehlivě. Nepřišel jsem na to, jak tuto změnu do Kodi pormítnou 100% spolehlivě jinak, než restartem PVR doplňku pvr.hts. Toho se dá dosáhnout restartem celého Kodi nebo explicitním restartem doplňku, které ale 100% spolehlivý také není. Já jsem si sice do Kodi vyrobil jednoduchý doplněk, který na rozhraní Tvheadend zjišťuje stav Enabled/Disabled kanálů se zadaným tagem, a při změně restart vyvolá, ale asi tak 1x z 20 až 30 restartů dojde k zamrznutí gui Kodi, který se dá odblokovat pouze restartem celého Kodi, což je ale při zamrznutém gui docela problém (musí se to provést buď z ssh monitoru, např. v *ELEC systému pomocí systemctl restart kodi, nebo jiným excterním restartem aplikace nebo celého systému, záleží na typu instalace). Dále ten doplněk také přidám a popíši, ale jeho používání je pouze na vlastní nebezpečí.
Python script se parametruje pomocí dat uložených v souboru config.py, které je plný komentářů, takže je celkem jednoduché pochopit logiku toho, jak funguje a jak je třeba ho nastavit. Jen je třeba zachovat logiku parametrů a označení mezi playlistem a konečným nastavením v Tvheadend, případně v Kodi. Proto ostatně píši v úvodu, že celé je to určené pouze pro zkušenější uživatele jak Tvheadend, tak Kodi.
Aktuální verze 0.2.0
V aktuální verzi jseme do generace EPG doplnil generaci tzv. fake programů, ktreé jsou předřazeny nebo následují skutečné programy. Cílem je, pokrýt ty dny, pro které existuje pro daný kanál alespoň jeden program, tak, aby bylo EPG naplněno od půlnoci 1. dne do půlnoci psledního dne. Mělo by to jednak EPG zpřehlednit a jednak by to mělo (tedy doufám) pokrýt ty stavy, kde se změní kanál pro již do EPG dříve vložený pořad. Jiné řešení jsem v manídce funkcí api TVhedend nenašel.
Jádo generace bylo pro potřeby nového řešení dost zásadně upraveno a současně s tím jsem doplnil pokročilou funkci protokolování. Z toho důvodu se i změnil obsah souboru config.py, kde je možné úroveň protokolování zadat. Pokdu se tam nezadá, budu protokolování probíhat v úrovni INFO.
Další změny jsou v souboru epg.sh, který jsem doplnil o načetění parametrů z konfiguračního soubor config.ini, a do něj přesunul všechny definice potenciálně editovaných parametrů.
Ty soubory, které se změnily a u kterých předpokládám, že si je v předcozí verzi 0.1.0 uživatelé pravděpodobně editovali, v generaci nejsou. Nahradily je soubory se stejným jménem doplněným postfixem .sample. Máte na výběr, ponechat si původní soubory a podle .sample souborů si je upravit a nebo původní soubory smazat a .sample soubory nakopírovat do souborů s původními názvy (bez .sample). Týká se to souborů:
Data ke stažení
Celé řešení je určené k běhu v systému na bázi Linux. Předpokladem je existence Python interpreteru (verze 3, ale bude to fungovat i na verzi 2), dále pak ffmpeg a samozřejmě instalace Tvheadend s odpovídající parametrizací sítě iVysilani+ (viz playlist, kde jsou odkazy na ikony, apod.). Řešení využívá api Tvheadend, proto je třeba pro uživatele (přihlašovací údaje je třeba zadat do config.py), kterým se k api přihlašuje, nastavit správné parametry. Samozřejmostí jsou znalosti týkající se použití metody pipe:// v Tvheadend a spouštění scriptů touto metodou.
Jak jsem napsal výše, není to out-of-box řešení a vyžaduje to jistou minimální úroveň znalostí Kodi, Tvheadend a konec konců i Linux based systémů. Mým záměrem není psát step-by-step návod pro úplné laiky. Strávil jsme s tím už hodně času, kdy jsem hledal optimální řešení a to, co jsem nakonec zrealizoval, funguje. Nemám příliš prostoru ani času se tomu věnovat do podoby detailního popisu a je taky možné, že jsem na něco důležité zapomněl. Takže když na něco narazíte, klidně se ptejte, ale nečekejte ode mne podporu a pochopení typu, Jak nastavit cron nebo příznak spustitelnosti. To by ten, kdo si chce hrát s Tvheadend na této úrovni, měl umět.
Celá instalace je jeden zip, které se rozbalí do adresáře, kde bude umístěno všechno, co je pro správnou funkci třeba. Je třeba nastavit správná práva, vlastníky, přístupy a příznaky spustitelnosti tam, kde je to třeba (streamer.sh a epg.sh). A samozřejme zajistit periodické spouštění scriptu epg.sh, buď cron nebo system-d. A pak samozřejmě, správně naparametrovat Tvheadend - uživatele, síť, služby, mapování, kanály, epg, včetně epg graberu.
Řešení pro příjem kanálů Sport Plus v Tvheadend a jeho prostřednictvím v Kodi
Abych byl konkrétní popíši stručně to, jak já kanály Sport Plus (Sport+), případně jiné kanály, které ve stejné logice iVysílání poskytuje (např. přenosy ze Senátu Parlamentu ČR, případně jiné pořady) přijímám a zpracováván. Pro potřeby popisu budu tyto kanály označovat jako iVysilani+, a spadají tedy do nich jak kanály programu Sport Plus, tak případně i kanály obsahující další vysílání (viz výše).
Vycházím z obvyklého modelu řešení (login - playlist - epg - streamer), které používám u ostatních OTT služeb, který jsem ale pro potřeby iVysilani+ jen trochu zjednodušil:
- playlist negeneruji, ale vytvářím ručně pomocí textového editoru
- pro vytvoření zdroje streamu pro rouru směrovanou pomocí konstrukce pipe:// v playlistu do Tvheadend používám pouze script streamer.sh, ve kterém mám adresu streamu zadanou pevně. Tu adresu jsem si vytáhl z webového rozhraní služby iVysílání
- generuji si epg z dat hbbtv zdroje České televize (credit @pbk:) pomocí scriptu epg.sh, stěžejní roli ale má python script epg.py, který je z tohoto scriptu volán. Výsledný formát dat je samozřejmě xmltv.
- xmltv data epg do Tvheadend vkládám pomocí externího xmltv graberu.
Kanály iVysilani+
Vysílání kanálů iVysilani+ probíhá poměrně specificky. I když je program vysílání těchto kanálů znám často i několik dnů dopředu, to, na kterém "fyzickém kanálu" budou nakonec jednotlivé pořady vysílány, se určí často jen několik hodin před tím. Někdy třeba 12, ale jindy také jen až jednu hodinu před zahájením vysílání pořadu. Proto tedy ani není možné vytvářet EPG v Tvheadend dříve než v okamžiku, kdy je toto přiřazení známo. Ve službě iVysílání jsou pro tyto kanály vytvořeny fixní interní kanály, které se pak využívají podle vcelku neznámé logiky. Dosud bylo zjištěno, že iVysilani+ má vytvořeno (resp. používá) množinu celkem 17 kanálů, které jsou označeny CH_25 až CH_31, CH_MOB_01 a CH_MP_01 až CH_MP_08. Dá se říci, že o tyto identifikace je celé řešení opřené. Používajíc se jak pro názvy služeb Tvheadend, tak i jako identifikace pro epg (tedy v xmltv). Vlastní jména kanálů iVysilani+, je ale možné si zvolit podle vlastního uvážení, jen je s tím třeba pak v další logice řešení počítat.
Já jsem si těch 17 kanálů v Tvheadend označil jendoduše, jak CT iVysilani+ 1 až CT iVysilani+ 17. Vidět je to na následujícím screenshotu. Všimněte si, že všechny kanály jsou označené jako Disabled, protože v tuto chvíli žádné epg pro tyto kanály ještě není známo, a to hlavně proto, že v tento den nejsou ani žádné pořady iVysilani+ v plánu vysílání. V logice pojmenování kanálů i číslování kanálů pokračuji podle toho, jak označuji jiné kanály České televize. Tady jenom dodám, že já ty klasické kanály přijímám primárně z DVB-T vysílání, jako zálohu používám vysílání OTT služby Sledovanitv.cz. Nepoužívám tedy pro ně příjem ze služby iVysilání.
Playlist iVysilani+
Jak už jsme uvedl výše, playlist negeneruji, vytvořil jsme ho ručně. Dá se samozřejmě editorem upravit, ale je třeba s případnými změnami počítat v logice dalšího zpracování. Zejméně ve scriptu epg.py a jeho konfiguračním souboru. config.py. Má současná produktivní verze vypadá takto:
Kód:
#EXTM3U
#EXTINF:-1 tvh-epg="0" tvg-logo="ctivysilani.png" group-title="iVysilani+" tvh-chnum="6.1" tvg-id="CH_25",CT iVysilani+ 1
pipe:///home/kodi/TVServer/playlist/ivysilani/streamer.sh CH_25
#EXTINF:-1 tvh-epg="0" tvg-logo="ctivysilani.png" group-title="iVysilani+" tvh-chnum="6.2" tvg-id="CH_26",CT iVysilani+ 2
pipe:///home/kodi/TVServer/playlist/ivysilani/streamer.sh CH_26
#EXTINF:-1 tvh-epg="0" tvg-logo="ctivysilani.png" group-title="iVysilani+" tvh-chnum="6.3" tvg-id="CH_27",CT iVysilani+ 3
pipe:///home/kodi/TVServer/playlist/ivysilani/streamer.sh CH_27
#EXTINF:-1 tvh-epg="0" tvg-logo="ctivysilani.png" group-title="iVysilani+" tvh-chnum="6.4" tvg-id="CH_28",CT iVysilani+ 4
pipe:///home/kodi/TVServer/playlist/ivysilani/streamer.sh CH_28
#EXTINF:-1 tvh-epg="0" tvg-logo="ctivysilani.png" group-title="iVysilani+" tvh-chnum="6.5" tvg-id="CH_29",CT iVysilani+ 5
pipe:///home/kodi/TVServer/playlist/ivysilani/streamer.sh CH_29
#EXTINF:-1 tvh-epg="0" tvg-logo="ctivysilani.png" group-title="iVysilani+" tvh-chnum="6.6" tvg-id="CH_30",CT iVysilani+ 6
pipe:///home/kodi/TVServer/playlist/ivysilani/streamer.sh CH_30
#EXTINF:-1 tvh-epg="0" tvg-logo="ctivysilani.png" group-title="iVysilani+" tvh-chnum="6.7" tvg-id="CH_31",CT iVysilani+ 7
pipe:///home/kodi/TVServer/playlist/ivysilani/streamer.sh CH_31
#EXTINF:-1 tvh-epg="0" tvg-logo="ctivysilani.png" group-title="iVysilani+" tvh-chnum="6.8" tvg-id="CH_31",CT iVysilani+ 8
pipe:///home/kodi/TVServer/playlist/ivysilani/streamer.sh CH_32
#EXTINF:-1 tvh-epg="0" tvg-logo="ctivysilani.png" group-title="iVysilani+" tvh-chnum="6.9" tvg-id="CH_MOB_01",CT iVysilani+ 9
pipe:///home/kodi/TVServer/playlist/ivysilani/streamer.sh CH_MOB_01
#EXTINF:-1 tvh-epg="0" tvg-logo="ctivysilani.png" group-title="iVysilani+" tvh-chnum="6.10" tvg-id="CH_MP_01",CT iVysilani+ 10
pipe:///home/kodi/TVServer/playlist/ivysilani/streamer.sh CH_MP_01
#EXTINF:-1 tvh-epg="0" tvg-logo="ctivysilani.png" group-title="iVysilani+" tvh-chnum="6.11" tvg-id="CH_MP_02",CT iVysilani+ 11
pipe:///home/kodi/TVServer/playlist/ivysilani/streamer.sh CH_MP_02
#EXTINF:-1 tvh-epg="0" tvg-logo="ctivysilani.png" group-title="iVysilani+" tvh-chnum="6.12" tvg-id="CH_MP_03",CT iVysilani+ 12
pipe:///home/kodi/TVServer/playlist/ivysilani/streamer.sh CH_MP_03
#EXTINF:-1 tvh-epg="0" tvg-logo="ctivysilani.png" group-title="iVysilani+" tvh-chnum="6.13" tvg-id="CH_MP_04",CT iVysilani+ 13
pipe:///home/kodi/TVServer/playlist/ivysilani/streamer.sh CH_MP_04
#EXTINF:-1 tvh-epg="0" tvg-logo="ctivysilani.png" group-title="iVysilani+" tvh-chnum="6.14" tvg-id="CH_MP_05",CT iVysilani+ 14
pipe:///home/kodi/TVServer/playlist/ivysilani/streamer.sh CH_MP_05
#EXTINF:-1 tvh-epg="0" tvg-logo="ctivysilani.png" group-title="iVysilani+" tvh-chnum="6.15" tvg-id="CH_MP_06",CT iVysilani+ 15
pipe:///home/kodi/TVServer/playlist/ivysilani/streamer.sh CH_MP_06
#EXTINF:-1 tvh-epg="0" tvg-logo="ctivysilani.png" group-title="iVysilani+" tvh-chnum="6.16" tvg-id="CH_MP_07",CT iVysilani+ 16
pipe:///home/kodi/TVServer/playlist/ivysilani/streamer.sh CH_MP_07
#EXTINF:-1 tvh-epg="0" tvg-logo="ctivysilani.png" group-title="iVysilani+" tvh-chnum="6.17" tvg-id="CH_MP_08",CT iVysilani+ 17
pipe:///home/kodi/TVServer/playlist/ivysilani/streamer.sh CH_MP_08Generace EPG
Jak už jsem uvedl, generátor epg používá data z hbbtv serveru České televize. Lze použít i data přímo ze služby iVysílání, vyjde to přibližně nastejno. Jen tada data z hbbtv se zpracovávají lépe, protože jsou k diposzici přímo ve formátu json. Generace se spouští sciptem epg.sh, je tedy třeba toto spouštění v systému naplánovat. Jak často, to je otázka, já osobně používám 30 minutovou periodu, jiní používají 15 minut, ale je to asi jedno. Zátěž systému není nijak zásadní, píše nepatrná, takže jde jenom o to, jak rychle se případná změna v epg promítne do vašeho systému. Kritické to může být v případě, kdy se epg pro pořad objeví až těsně před zahájením jeho vysílání. Zatím jsem zanamenal nejkratší čas přibižně jednu hodinu. Většinou je ale těch hodin několik.
Generaci provádí ve scriptu spuštění python program epg.py. Generuje se soubor xmltv a do Tvheadend se dostane prostřednictvím externího xmltv graberu. Je tedy třeba mít tento graber v Tvheadend povolený. K uložení se ve scriptu používá aplikace socat. Není-li k dispozcii (např. v *ELEC systémech instalovaná není), je místo ní možné použít např. program curl. Detailní popis python scriptu epg.py v samostatné kapitole.
Python script epg.py
Tento script, mimo vlastní generaci xmltv, provádí jednu důležitou akci, v rámci které ty kanály, které nemají definovaný pořad (tedy epg), označí v Tvheadend jako Disabled. To má za následek, že se epg pro tyto kanály v Kodi nezobrazí. Výrazně to pomáhý v přehlednosti epg. Má to ale jednu potíž, že změna stavu Enabled/Disabled kanálu se do epg v Kodi promítá nespolehlivě. Nepřišel jsem na to, jak tuto změnu do Kodi pormítnou 100% spolehlivě jinak, než restartem PVR doplňku pvr.hts. Toho se dá dosáhnout restartem celého Kodi nebo explicitním restartem doplňku, které ale 100% spolehlivý také není. Já jsem si sice do Kodi vyrobil jednoduchý doplněk, který na rozhraní Tvheadend zjišťuje stav Enabled/Disabled kanálů se zadaným tagem, a při změně restart vyvolá, ale asi tak 1x z 20 až 30 restartů dojde k zamrznutí gui Kodi, který se dá odblokovat pouze restartem celého Kodi, což je ale při zamrznutém gui docela problém (musí se to provést buď z ssh monitoru, např. v *ELEC systému pomocí systemctl restart kodi, nebo jiným excterním restartem aplikace nebo celého systému, záleží na typu instalace). Dále ten doplněk také přidám a popíši, ale jeho používání je pouze na vlastní nebezpečí.
Python script se parametruje pomocí dat uložených v souboru config.py, které je plný komentářů, takže je celkem jednoduché pochopit logiku toho, jak funguje a jak je třeba ho nastavit. Jen je třeba zachovat logiku parametrů a označení mezi playlistem a konečným nastavením v Tvheadend, případně v Kodi. Proto ostatně píši v úvodu, že celé je to určené pouze pro zkušenější uživatele jak Tvheadend, tak Kodi.
Aktuální verze 0.2.0
V aktuální verzi jseme do generace EPG doplnil generaci tzv. fake programů, ktreé jsou předřazeny nebo následují skutečné programy. Cílem je, pokrýt ty dny, pro které existuje pro daný kanál alespoň jeden program, tak, aby bylo EPG naplněno od půlnoci 1. dne do půlnoci psledního dne. Mělo by to jednak EPG zpřehlednit a jednak by to mělo (tedy doufám) pokrýt ty stavy, kde se změní kanál pro již do EPG dříve vložený pořad. Jiné řešení jsem v manídce funkcí api TVhedend nenašel.
Jádo generace bylo pro potřeby nového řešení dost zásadně upraveno a současně s tím jsem doplnil pokročilou funkci protokolování. Z toho důvodu se i změnil obsah souboru config.py, kde je možné úroveň protokolování zadat. Pokdu se tam nezadá, budu protokolování probíhat v úrovni INFO.
Další změny jsou v souboru epg.sh, který jsem doplnil o načetění parametrů z konfiguračního soubor config.ini, a do něj přesunul všechny definice potenciálně editovaných parametrů.
Ty soubory, které se změnily a u kterých předpokládám, že si je v předcozí verzi 0.1.0 uživatelé pravděpodobně editovali, v generaci nejsou. Nahradily je soubory se stejným jménem doplněným postfixem .sample. Máte na výběr, ponechat si původní soubory a podle .sample souborů si je upravit a nebo původní soubory smazat a .sample soubory nakopírovat do souborů s původními názvy (bez .sample). Týká se to souborů:
- epg.sh
- config.py
- playlist.m3u8

Data ke stažení
Celé řešení je určené k běhu v systému na bázi Linux. Předpokladem je existence Python interpreteru (verze 3, ale bude to fungovat i na verzi 2), dále pak ffmpeg a samozřejmě instalace Tvheadend s odpovídající parametrizací sítě iVysilani+ (viz playlist, kde jsou odkazy na ikony, apod.). Řešení využívá api Tvheadend, proto je třeba pro uživatele (přihlašovací údaje je třeba zadat do config.py), kterým se k api přihlašuje, nastavit správné parametry. Samozřejmostí jsou znalosti týkající se použití metody pipe:// v Tvheadend a spouštění scriptů touto metodou.
Jak jsem napsal výše, není to out-of-box řešení a vyžaduje to jistou minimální úroveň znalostí Kodi, Tvheadend a konec konců i Linux based systémů. Mým záměrem není psát step-by-step návod pro úplné laiky. Strávil jsme s tím už hodně času, kdy jsem hledal optimální řešení a to, co jsem nakonec zrealizoval, funguje. Nemám příliš prostoru ani času se tomu věnovat do podoby detailního popisu a je taky možné, že jsem na něco důležité zapomněl. Takže když na něco narazíte, klidně se ptejte, ale nečekejte ode mne podporu a pochopení typu, Jak nastavit cron nebo příznak spustitelnosti. To by ten, kdo si chce hrát s Tvheadend na této úrovni, měl umět.
Celá instalace je jeden zip, které se rozbalí do adresáře, kde bude umístěno všechno, co je pro správnou funkci třeba. Je třeba nastavit správná práva, vlastníky, přístupy a příznaky spustitelnosti tam, kde je to třeba (streamer.sh a epg.sh). A samozřejme zajistit periodické spouštění scriptu epg.sh, buď cron nebo system-d. A pak samozřejmě, správně naparametrovat Tvheadend - uživatele, síť, služby, mapování, kanály, epg, včetně epg graberu.
Jsem (až na výjimky) pouhým čtenářem fóra.
Nepokračuji tedy ani v tématech, která jsem založil.
To platí i pro doplňky Kodi a další aplikace, které jsou s takovými tématy spojené.
Nepokračuji tedy ani v tématech, která jsem založil.
To platí i pro doplňky Kodi a další aplikace, které jsou s takovými tématy spojené.



