• Vítejte na XBMC-Kodi.cz
  • Česko-slovenská komunita fanoušků XBMC/Kodi
Vítejte návštevníku! Přihlášení Registrace


Hodnocení tématu:
  • 2 Hlas(ů) - 5 Průměr
  • 1
  • 2
  • 3
  • 4
  • 5
O2TV Server
#1
O2TV Server slouží jako alternativa k IPTV Web Serveru pro O2TV 2.0. Lze ho používat buď jako doplněk v Kodi i samostatně.

Kodi

Nainstalujte doplněk a v jeho nastavení vyplňte přihlašovací údaje, deviceid (libovolný alfanumerický řetězec) a IP adresu nebo jméno serveru. Po uložení nastavení restartujte Kodi nebo zakažte a povolte doplněk.

Samostatný skript

Rozbalte zip, zkopírujte config.txt.sample na config.txt a v něm vyplňte jméno, heslo, deviceid a IP adresu nebo jméno serveru. Server spusťte z adresáře service.o2tv.server spuštěním python3 server.py.

Pokud chcete O2TV Server spustit na linuxu se systemd jako službu, jako root/přes sudo:
- zkopírujte z adresáře scripts soubor o2tv_server.service do /etc/systemd/system/
- nastavte v něm uživatele, pod kterým má O2TV Server běžet a cestu k rozbalenému O2TV Serveru
- systemctl daemon-reload
- systemctl enable o2tv_server
- systemctl start o2tv_server

TVheadend

Podporu pro TVheadend berte zatím jako experimentální. Také je potřeba počítat s tím, že např. u TVheadendu v CoreELECu může splnění požadavků a zprovoznění komplikovanější než na plnohodnotných linuxových operačních systémech!

Pro použití O2TV Serveru v TVheadendu je potřeba mít na nainstalovaný streamlink a ffmpeg (na stroji s TVH). Pro načtení EPG přes External XMLTV grabber pak ještě socat.

V config.txt zkontrolujte nastavení cesta_streamlink a cesta_ffmpeg (viz config.txt.sample), v případě Kodi pak analogické položky v nastavení. Při vytváření sítě v TVheadendu použijte adresu http://<adresa nebo jméno serveru>:<port (defaultně 8081)>/playlist/tvheadend/streamlink, např. http://127.0.0.1:8081/playlist/tvheadend/streamlink.

U EPG je jednou z variant využití External XMLTV grabberu. Nejprve ho je potřeba v TVheadnedu povolit (Program/Channels - EPG Grabber modules). V adresáři scripts je připravený skript k epg.sh, který stáhne EPG z O2TV Server a obsah pošle External XMLTV grabberu. Zkontrolujte v něm cestu xmltv.sock (vytvoří se po povolení grabberu) a URL O2TV Serveru.

URL

Playlist je dustupný na http://<adresa nebo jméno serveru>:<port (defaultně 8081)>/playlist, např. http://127.0.0.1:8081/playlist

EPG lze pak stáhnout z http://<adresa nebo jméno serveru>:<port (defaultně 8081)>/epg, např. http://127.0.0.1:8081/epg

Reset kanálů/session

Na http://<adresa nebo jméno serveru>:<port (defaultně 8081)>, např. http://127.0.0.1:8081 je možné stiskem tlačítka vynutit načtení kanálů nebo vytvotvoření nové sessiony.

Nastavení

Popsaná je konfigurace v config.txt pro samostatně běžící O2TV Server. U O2TV Serveru běžícího jako doplněk v Kodi je nastavení analogické, pouze s hezčími popisky.

username - uživatelské jméno v O2TV
password - heslo k účtu
deviceid - unikátní ID zařízení, používejte jen čísla a písmena
webserver_ip - adresa O2TV Serveru, která bude použitá v playlistu a jiných URL. Standarně je 127.0.0.1, což znamená, že lze O2TV Server volat jen se stejného zařízení. Můžete použít i hostname nebo adresu ve vaší síti, aby bylo možné O2TV Server využívat i odjinut. Pokud místo adresy použijete "IP" zjistí se adresa automaticky.
webserver_port - port na kterém O2TV Server poběží
epg_dnu_zpetne - počet dnů v minulosti, pro které se bude stahovat EPG
epg_dnu_dopredu - počet dnů v budoucnosti, pro které se bude stahovat EPG
interval_stahovani_epg - pokud je 0, bude se EPG stahovat jen pokus si EPG klient vyžádá. Nastavením na kladné celé číslo se budou stahování EPG pouštět na pozadí, po zadaném počtu hodin (počítáno od startu O2TV Serveru). EPG se uloží a požadavky jsou pak vyřižované lokálně a tedy výrazně rychleji. Používejte v případě, že vám O2TV Server běží trvale a využíváte EPG z něj.
odstranit_hd - pokud je 1, bude z názvu kanálu odstraněné "HD". Může se to hodit např. pokud používáte nějaký zdroj EPG, kde názvu kanálů neodpovídají konvencím v O2TV
pouzivat_cisla_kanalu - pokud je 1, bude se při volání O2TV Serveru se bude k identifikaci kanálu místo jména používat číslo kanálu
poradi_sluzby (od v1.2.3) - umožňuje nastavit pořadové číslo služby, která se má použít. Pokud je -1, použije se poslední. 1 = první služba, 2 = druhá služba atd. Jestliže máte víc služeb, zkuste nastavit 1 a udělat reset sessiony a kanálů
debug - pokud je 1, zapne se podrobné logování včetně volání API
cesta_streamlink - cesta ke streamlink (použije se v playlistu pro TVheadend)
cesta_ffmpeg - cesta ke streamlink (použije se v playlistu pro TVheadend)

Jestli některou položku v config.txt nenajdete, může se jednat o později přidaný parametr a bude ho potřeba do config.txt přidat. Jako referenci použijte config.txt.sample, který je aktualizovaný.

Změny

v1.2.5 (07.10.2024)
- když se v nastavení adresy serveru použije řetězec IP, nastaví se adresa automaticky

v1.2.4 (04.10.2024)
- ošetření nefunkční stránky na některých platformách

v1.2.3 (05.09.2024)
- do nastavení přidaná možnost nastavit pořadové číslo služby, která se má použít (-1 = poslední)

v1.2.2 (21.06.2024)
- odstranění originálního názvu pořadu z EPG

v1.2.1 (21.04.2024)
- přidaná možnost změna identifikace kanálu z jména na ID

v1.2.0 (03.04.2024)
- přidání vzoru skriptu pro start O2TV Serveru jako služby
- přidání playlistu pro TVheadend s použitím streamlink
- přidání skriptu pro External XMLTV Grabber v TVheadendu

v1.1.0 (29.03.2024)
- oprava přehrávání u kanálů bez EPG

v1.0.9 (26.03.2024)
- oprava catchupu

v1.0.8 (18.03.2024)
- ošetření mezer za jménem kanálu
- úprava generování EPG

v1.0.7 (18.03.2024)
- ošetření lomítka v názvu kanálu

v1.0.6 (17.03.2024)
- oprava přehrávání u kanálů bez EPG

v1.0.5 (15.03.2024)
- rozšíření "homepage"

v1.0.4 (13.03.2024)
- oprava přehrání z IPTV Simple Clienta
- oprava catchupu

v1.0.3 (11.03.2024)
- přidání generování EPG (URL /epg)
- přejmenování adresáře na script.o2tv.server

v1.0.2 (10.03.2024)
- přidání virtuálních kanálů pro multidimenzi
- přidána stránka s resetem kanálů a session

v1.0.1(09.03.2024)
- úprava detekce Kodi
- oprava otevření config.txt na Windows

v1.0.0 (08.03.2024)
- první verze


Přiložené soubory
.zip   script.o2tv.server-1.2.5.zip (Velikost: 64,22 KB / Stažení: 26)
 
Citovat
#2
To je rychlost, perfektne :)

Ukazuje malu chybu s alokaci configu, neskousel jsem to zatim v Linuxu
 
Kód:
c:\Users\rasti\Downloads\service.o2tv.server>python server.py
Exception in thread Thread-1:
Traceback (most recent call last):
  File "C:\Users\rasti\AppData\Local\Programs\Python\Python311\Lib\threading.py", line 1038, in _bootstrap_inner
    self.run()
  File "c:\Users\rasti\Downloads\service.o2tv.server\server.py", line 9, in run
    start_server()
  File "c:\Users\rasti\Downloads\service.o2tv.server\libs\web.py", line 47, in start_server
    port = int(get_config_value('webserver_port'))
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\Users\rasti\Downloads\service.o2tv.server\libs\utils.py", line 30, in get_config_value
    with open(config_file, 'r') as f:
         ^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\rasti\\Downloads\\service.o2tv.server\\libs\\utils.py\\config.txt'

c:\Users\rasti\Downloads\service.o2tv.server>
 
Citovat
#3
@rasti: vzhledem k tomu, že se to ani nepustí, zase tak malá nebude :-) Pošli mi do SZ obsah config.txt (username a password nahraď třeba hvězdičkami). Pravděpodobně v něm bude nějaký problém, třeba chybějící uvozovka nebo chybějící čárka.
 
Citovat
#4
@rasti: díky za config.txt a info o tom, že je to problém windows. Ve verzi 1.0.1 jsem upravil zpracování cesty na Windows a udělal jinak detekci spuštění v rámci Kodi.
 
Citovat
#5
Synology uložiště spuštěno python3. Playlist generuje. Přepnutí načítá déle. VLC načítá déle-windows,IPTV PRO android  načítá déle ale jede, TVIMATE android -načte playlist přehrává,asi nastavením bufferingu.
 
Citovat
#6
@waladir: V instalaci 1.0.1 je v addon.xml stále číslo verze 1.0.0.
 
Citovat
#7
@JiRo: jsem hlava děravá :-) Jen kvůli tomu novou verzi dělat nebudu a příště na to snad už nezapomenu.
 
Citovat
#8
Mám dotaz. Jak na multistreamy?
 
Citovat
#9
Ve verzi 1.0.2 jsem přídal stránku, kde je možné resetovat kanály nebo sessionu (http://<adresa>:8081) a do playlistu byly přidané kanály bez přiřazeného čísla, tj. virtuální kanály pro multidimenzi (O2 TV Sport 1-8 HD). Vzhledem k tomu, že se kanály aktualizují jen jednou za den, může k vynucení využít novou featuru a udělat reset přes stránku :-)

@wendolf: doufám, že jsem na tvojí otázku odpověděl
 
Citovat
#10
Díky moc .Server spouštím každou hodinu.Je to dobře? U IPTV server bylo nutné resetnou Python a znovu spustit server.
 
Citovat
#11
@wendolf: nevím kvůli čemu to bylo nutné dělat v IPTV Web Serveru, ale tady se sessiona obnovuje když je to potřeba a kanály jednou za 24 hodin. Kromě toho se dá vynutit smazaním channels.txt a session.txt v adresáři data nebo nově na webové stránce, kliknutím na tlačítko. Restart není potřeba. Pokud se něco změní, projeví se to hned.

Samozřejmě to nemusí platit tam, kde playlist používáte. Je možné, že tam bude nutné načtení změněného playlistu nějak vynutit.
 
Citovat
#12
(10.3.2024, 9:33)wendolf Napsal(a): Díky moc .Server spouštím každou hodinu.Je to dobře? U IPTV server bylo nutné resetnou Python a znovu spustit server.

@wendolf: ja jsem pouzival IPTV server pro O2TV 1.0, ktery bezel na QNAP NASe v Dockeru a zadny reset Dockeru nebo IPTV serveru jsem nikdy delat nemusel.
 
Citovat
#13
Ve verzi 1.0.3 jsem přejměnoval adresář a zároveň i zip, aby seděl s id doplňku v Kodi. Snad to nikoho nezmate. Dál jsem přidal možnost stažení EPG (URL /epg). Může stahovat buď online nebo nezávisle v pravidelných intervalech, což doporučuju. Pokud nepoužíváte O2TV Server v Kodi, bude nutné přídat do config.txt následující parametry (viz. config.txt.sample):

    "epg_dnu_zpetne":1,
    "epg_dnu_dopredu":1,
    "interval_stahovani_epg":0,

Význam prvních dvou parametrů je asi jasný. U třetího můžete nastavit ve formě celého čísla, v jakém intervalo se má EPG automaticky stahovat. Pokud je 0, začnou se data stahovat online při otevření URL /epg. Může to trvat i několik minut a nejspíš bude webserver po tu dobu blokovaný, proto doporučuju EPG stahovat automaticky a nezávisle, zadáním nenulové hodnoty. Parametry je nutné doplnit, i pokud EPG nebudete chtít stahovat!

V konfiguraci doplňku v Kodi je nastavení i fungování stejné. Akorát tam odpadá nutnost upravovat konfiguraci.

Díky moc @rasti: za námět a celou neděli strávenou testováním a hlášením chyb :-)
 
Citovat
#14
Diky za zahrnuti EPG, u mne jako server v lokalni siti zatim funguje skvele.
 
Citovat
#15
No ja to ted testuji, na local jede, akorat premyslim jak ten CATCHUP.... iptv simple nejede, jak pise Waladir.. cim tedy vyzkouset ten CATCHUP?
 
Citovat
#16
Ahoj, krásná práce, nebyl problém se sprovozněním.
Mám dotaz, bylo by možné přidat možnost do nastavení, aby server generoval hls streamy, místo dash? Popřípadě si moct vybrat, aby playlist obsahoval jen tu nejvyšší kvalitu streamu (1080p)?
 
Citovat
#17
@romcan: bohužel O2TV 2.0 sice nabízí i HLS streamy, ale jen s DRM ochranou Apple Fairplay, které zřejmě nepůjde přehrát. S DASHem souvisí i druhá část. Ten zjednodušeně obsahuje streamy z ruzným bitratem/kvalitou. Který se vybere je pak na přehrávači.
 
Citovat
#18
Děkuji skvělá práce ! Ještě k tomu "interval_stahovani_epg": celé_číslo, To celé číslo je počet volání URL ? Nebo hodiny ? díky.
 
Citovat
#19
@wendolf: je to počet hodin. 12 znamená každých 12 hodin, tj. dvakrát denně. Čas se počítá od spuštění scriptu/doplňku. Pokud je interval nenulový, první stažení se udělá hned po startu. Data se uloží lokálně do souboru, takže při načtení z URL jsou vrácena rychle. Pokud hodnotu změníte z nuly nebo na nulu, je potřeba server restartovat (v případě Kodi buď restartnout Kodi nebo doplněk zakázat a povolit).
 
Citovat
#20
Nešel by ještě nastavit start stahování EPG? Mám Synology NAS DS115J a poměrně hodně to zatěžuje vše. (viz předchozí můj příspěvek, kdy mi "padal IPTV Server, musel jsem shodit procesy Pythonu a pak auto nahodit znovu, což  jelo ok.) Stahování v noci  by bylo ideální.
 
Citovat
  


Přejít na fórum:


Prochází: 1 host(ů)