• 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:
  • 4 Hlas(ů) - 3 Průměr
  • 1
  • 2
  • 3
  • 4
  • 5
Oneplay Server
@JiRo: ... a nebo tak :)
Napadlo me, ze by se takovahle funkcionalita mohla nekomu hodit - a predejit pripadnemu banu IP od O2. Tak jsem to hodil sem na forum.

Jinak teda samozrejme jakozto linuxovy nadsenec jsem to uz nejak vyresil. Urcite by to slo i nejak lepe

Logy ze systemd service jsem presmeroval do jednoho konkretniho soboru:
/etc/systemd/system/oneplay_server.service
 
Kód:
[Unit]
Description=Oneplay Server
After=network.target

[Service]
Type=idle
Restart=no
User=root
ExecStart=/usr/bin/python3 /opt/oneplay/server.py
StandardOutput=file:/opt/oneplay/server.log
StandardError=file:/opt/oneplay/server.log

[Install]
WantedBy=multi-user.target

Pridal jsem jeste dalsi sluzbu
/etc/systemd/system/oneplay_server_check.service
 
Kód:
[Unit]
Description=Oneplay Server Fail Check
After=oneplay_server.service
Requires=oneplay_server.service

[Service]
Type=idle
Restart=no
User=root
ExecStart=/usr/local/bin/oneplay_fail_check

[Install]
WantedBy=multi-user.target

/usr/local/bin/oneplay_fail_check
 
Kód:
#!/bin/bash
SERVICE_FAIL=0
while true
do
    if egrep -q 'HTTP/1.1" 500' /opt/oneplay/server.log 2>/dev/null
    then
        SERVICE_FAIL=1
    fi
    if egrep -q 'Problém při přihlášení' /opt/oneplay/server.log 2>/dev/null
    then
        SERVICE_FAIL=1
    fi
    if [ "$SERVICE_FAIL" -eq "1" ]
    then
        echo "LOGIN FAIL detected!!!" >> /opt/oneplay/server.log
        systemctl stop oneplay_server.service
    fi
    sleep 10
done

Asi urcite lze vymyslet nejak lepe, byl jsem linej premyslet - ale ucel sveti prostredky  6
 
Citovat
Při změně hesla, je potřeba upravit konfiguraci a nové údaje se použijí při pokusu o získání nového tokenu. Problém je, že se token není potřeba jen při volání streamu, ale i u dalších API, kdy se načítají kanály, stahuje playlist, epg atd. Neříkám, že by to nějak nešlo, ale nebude to fungovat úplně ideálně a dokud si někdo . I když chápu, že zablokování účtu je nemilé, tak se mi moc nechce některé věci překopávat, když výsledek nebude dokonalý. Můžete si vybrat, jestli je to alibismus nebo spíš lenost ;-) Ale třeba něco nakonec něco vymyslím.
 
Citovat
Zdravím pánové
Možná jsem narazil na malou chybku. Naistaloval jsem webserver, Doinstaloval sudo apt install python3-bottle a sudo apt install python3-websocket. Provedl vyplnění config.txt.

Při použití parametru "pouzivat_cisla_kanalu":0 se mi nedařilo nascanovat kanaly české televize, skupiny prima ( mimo CNN prima news a Prima star) a celá skupina Nova. Poté nějaké filmboxy také nešly.
Při přepsání do tohoto parametru 1 vše jde. 

Zkuste se kouknout, kdy by mohla být chyba, dle mě háčky čárky v názvech či tak něco.

Děkuji za skvělou práci co tomuto doplňků pro tvheadend dáváte. ( neplánují tvheadend nějakou formu pluginů z repositáře, jak to funguje v kodi?)

Dík Martin
 
Citovat
@martinchromy1985: používáš Oneplay Server nebo skripty pro TVheadend? Večer na to mrknu.
 
Citovat
(05.6.2025, 8:19)waladir Napsal(a): @martinchromy1985: používáš Oneplay Server nebo skripty pro TVheadend? Večer na to mrknu.

Server - scripty jsem zatím nezkoušel .. nebyl čas.
 
Citovat
Ahoj,
předně díky moc za veškerou práci na pluginu a serveru.

Mám dotaz ohledně catchup funkcionality.

Používám Oneplay Server v Docker kontejneru. K němu se připojím na několika zařízeních buď přes Jellyfin nebo Kodi. Live TV i s Timeshiftem fungují v obou klientech. Catchup se mi nedaří v Kodi nastavit (Používám IPTV SC).

Díval jsem se do resources/lib/web.py kde je catchup hardcoded na shift mód.
V Oneplay Plugin jsem se díval do zdrojáků, že jsou podporovány default a append.
Zkoušel jsem takhle nastavit catchup v IPTV SC, zatím bez úspěchu. V guide jsou programy se zelenou tečkou a mám i možnost přehrát pořad zpětně, ale místo daného pořadu Kodi spustí daný kanál v live režimu.

Existuje nějaké nastavení IPTV SC, které umožní catchup? Měl bych tam manuálně speicifikovat Query Format string?

Vím, že použití Oneplay Pluginu přímo v Kodi by problém vyřešilo, nicméně raději bych pužíval pouze server, jelikož i s rodinným balíčkem z Oneplay jsem už někdy na hraně s počtem zařízení.
 
Citovat
@patV: podívej se do nastavení IPTV SC, jestli v Catchup nemáš nastavený posun času ve Vyrovnávací paměť před spuštěním pořadu. Při volání catchupu s IPTV SC přijde jméno kanálu a začátek pořadu, podle které se hledá v EPG. Pokud je to nastavené, IPTV SC čas začátku posune a nic se nenajde. Pak se pustí jen živý stream.
 
Citovat
@martinchromy1985: přímo v TVheadendu to teď nevyzkouším, ale playlist vypadá OK. URL z něj i např. ve VLC  playeru funguje. Diakritika by problém dělat neměla, ani např. mezery. Hodil by se log. Druhá možnost je použít čísla kanálů, které jsou přeci jen bezpečnější.
 
Citovat
Ahoj
Neřešil bych to vicero. Playboy mi nešel ale to bylo pinem.

Jak s radiama bylo by možné dodělat i sem? 

Dost využívám na cestách.
 
Citovat
@martinchromy1985: obávám se, že ve Oneplay rádia vůbec nejsou.
 
Citovat
(05.6.2025, 11:47)waladir Napsal(a): @patV: podívej se do nastavení IPTV SC, jestli v Catchup nemáš nastavený posun času ve Vyrovnávací paměť před spuštěním pořadu. Při volání catchupu s IPTV SC přijde jméno kanálu a začátek pořadu, podle které se hledá v EPG. Pokud je to nastavené, IPTV SC čas začátku posune a nic se nenajde. Pak se pustí jen živý stream.

Čas jsem nastavil na nulu a catchup částečně funguje - když kliknu v Guide na pořad, začne se přehrávat daný pořad.
Ale když pak chci pořad posunout ať už dopředu nebo dozadu, vysílání se přepne automaticky na live TV.
Nevíš, čím by to mohlo být způsobeno?
Díky
 
Citovat
@patV: nevím jestli tam nemáš zapnutý např. timeshift nebo něco, co při místo posunu v rámci videa nepošle nový požadavek na Oneplay Server s posunutým časem.
 
Citovat
Připojuji se, že mám stejný problém jako @patV.
Vyzkoušna všechna různá nastavení IPTVSC a zatím nic nepomohlo. A to stejné mně dělá i aplikaci na TV (SIPTV). Zpětně spouštěný pořad se spustí, ale při pokusu o přetočení, opět skočí na live toho kanálu.
 
Citovat
(06.6.2025, 4:31)waladir Napsal(a): @martinchromy1985: obávám se, že ve Oneplay rádia vůbec nejsou.

Aha v O2TV byla... promin ..
 
Citovat
@Miha17: @patV: jak jsem zmiňoval, tohle je problém v chování klienta. Ten místo posunu v rámci streamu znovu zavolá Oneplay Server s posunutým začátkem. Udělal jsem nějaké pokusy v IPTV SC a pomohlo zapnout v nastavení Rozšířené - Použití inputstream.adaptive pro streamy m3u8 (HLS). Ono to i dává smysl.

Ve verzi 1.2.1 Oneplay Server i TVheadend skriptů se zohledňuje profil, pokud ho máte nastavený.
 
Citovat
@waladir: Wau. Díky moc, bylo přesně tímto nastavení v Rozšířené a v KODI už funguje jak má. Seš borec.
 
Citovat
Ahoj
Bude možné někde stáhnout tento vypínací scritp. Ivysilání funguje genialně .. implemantace a zjednodušení přehledu programu vítáno. Používám TVH scritpy a těch kanálu je tam moc. Idea je podobná tvé .. naházet je po one sport a pod něj ty mulitdimeze .. které budou zapnuté jen, když budou mít epg.  

Děkuji za obrovský kus práce co máš odvedeno.
(19.3.2025, 18:09)JiRo Napsal(a): Navazuji na úvahu o tom, jak by se multidimenze OnePlay měla pro použití v Tvheadend řešit. Jen upozoňuji, že se to týká případu, kdy jsou použity skripty v Tvheadend a ne tedy OnePlay Server. To řešení je sice hodně podobné, ale přeci je tam možné některé odlišnosti najít. @waladir: na těchto scriptech pracuji také, ale já jsme byl netrpělivý a z jeho originálního kódu doplňku OnePlay pro Kodi jsme si odvodil řešení, které navazuje na některá má už používaná a osvědčená řešení s podobnými funkcemi (např. příjem kanálů ČT Sport Plus z iVysílání).

Klíčové pro to, aby se OnePlay kanály s multidimenzí daly rozumně používat je:
  • vlastní příjem a volby jak master kanálu multidimenze, kde se vysílá tzv. mozaika všech streamů, tak subkanálů jednotlivých streamů - tohle jsem jen s drobnými úpravami převzal z originálu
  • zpracování epg - tady jsem použil základní modul epg z originálu ale doplnil ho, protože jsem chtěl, aby se informace z master kanálu i subkamálů daly vzájemně využít. Takže teď mám informace v master kanálu doplněné o názvy všech streamů z jednotlivých subkanálů a naopak, do subkanálu kopíruji vybrané informace z master kanálu.
  • Řízení enable/disable subkanálů podle toho, zda pro něj existuje nějaké epg.  Tady ještě váhám před strategií. Jsou v podstatě tři možnosti:
    1. neřídit nic, pak ale budou všechny subkanály v epg trvale viditelné, což bude nepřehledné a ani nijak moc hezké.
    2. řídit enable/disable podle toho, zda pro kanál epg existuje nebo neexistuje. To už je lepší, ale v přípdě že si stahujete epg na větší počet dní dopředu, výsledek je víceémně hodně podobný tomu předchozímu řešení.
    3. řídit enable/disable podle toho, zda pro kanál epg existuje nebo neexistuje ale pouze pro nějaký nastavený počet dní, který může být kratší, než pro kolik se stahuje epg. Tohle řešení se mi ais líbí nejvíce. Typicky by tam mohl být např. jeden den, tzn. když se bude aktualizace epg provádět 1x denně rámo, tak se zobrazí jen ty subkanály multidimenze, které budou mít epg pro tento den.
    4. řídit enable/disable podle toho, zda pro kanál epg existuje a to pouze v čase po dobu vysílání nějakého zápasu. To je si hodně efektní, ale naráží to na celou řadu problémů, které jsem poměrně podrobně popisoval už u řešení pro iVysílání. Kdo o to má zájem podívejte se na toto téma zde na fóru.
.....
 
Citovat
Zdravím, nevím, jestli je to jen chování skriptu u mě, ale po spuštění serveru se mi EPG nestahuje, tak jsem zkoušel pár nastavení.

Když nastavím v config.txt "debug": 1, stahování se spustí.
 
Kód:
oneplayserver  | Bottle v0.13.3 server starting up (using WSGIRefServer())...
oneplayserver  | Listening on http://0.0.0.0:8082/
oneplayserver  | Hit Ctrl-C to quit.
oneplayserver  | 
oneplayserver  | Start plánovače pro stahování EPG
oneplayserver  | 
oneplayserver  | Začátek stahování EPG
oneplayserver  | 
oneplayserver  | https://http.cms.jyxo.cz/api/v3/epg.display
oneplayserver  | {'payload': {'criteria': {'channelSetId': 'channel_list.1', 'viewport': {'channelRange': {'from': 0, 'to': 200}, 'timeRange': {'from': '2025-07-24T00:00:00.000Z', 'to': '2025-07-24T23:59:59.000Z'}, 'schema': 'EpgViewportAbsolute'}}, 'requestedOutput': {'channelList': 'none', 'datePicker': False, 'channelSets': False}}}


Když nastavím "debug": 0, tak už ne.
 
Kód:
oneplayserver  | Bottle v0.13.3 server starting up (using WSGIRefServer())...
oneplayserver  | Listening on http://0.0.0.0:8082/
oneplayserver  | Hit Ctrl-C to quit.
oneplayserver  | 
oneplayserver  | 192.168.1.102 - - [25/Jul/2025 12:57:46] "GET / HTTP/1.1" 200 71678
oneplayserver  | 192.168.1.102 - - [25/Jul/2025 13:00:05] "GET /play/%C4%8CT1%20HD.m3u8 HTTP/1.1" 303 0


Nevíte, čím by to mohlo být? Mám aktuální verzi Oneplay Serveru (v.1.2.1), jinak kromě stahování EPG server funguje bez problémů.
 
Citovat
@rasti: nastavení debug jen zapíná logování volání API, ale i pokud je debug=0, měl bys v logu vidět "Start plánovače pro stahování EPG", "Začátek stahování EPG". Stahování se poprvé pustí cca. 13 sekund po startu Oneplay Serveru a pak dál v zadaném intervalu. Akorát je nutné mít nastavený interval_stahovani_epg > 0. Pokud je interval_stahovani_epg=0, EPG se stáhne "na vyžádání", pokud někdo zavolá Oneplay Server s URI /epg. To je samozřejmě pomalejší, než když to načte z lokálně uložených dat (data/epg.txt).

To popsané chování nedává moc smysl, protože tam není vidět start plánovače, který by měl být zalogovaný vždy. Jediný možnost, kdy se nepustí, je s nastaveným interval_stahovani_epg=0. Ale to by se zase nepustilo stahování v prvním případě.
 
Citovat
(25.7.2025, 13:30)waladir Napsal(a): @rasti: nastavení debug jen zapíná logování volání API, ale i pokud je debug=0, měl bys v logu vidět "Start plánovače pro stahování EPG", "Začátek stahování EPG". Stahování se poprvé pustí cca. 13 sekund po startu Oneplay Serveru a pak dál v zadaném intervalu. Akorát je nutné mít nastavený interval_stahovani_epg > 0. Pokud je interval_stahovani_epg=0, EPG se stáhne "na vyžádání", pokud někdo zavolá Oneplay Server s URI /epg. To je samozřejmě pomalejší, než když to načte z lokálně uložených dat (data/epg.txt).

To popsané chování nedává moc smysl, protože tam není vidět start plánovače, který by měl být zalogovaný vždy. Jediný možnost, kdy se nepustí, je s nastaveným interval_stahovani_epg=0. Ale to by se zase nepustilo stahování v prvním případě.

Je to tak, je to divny.

V config zmenim jedine debug=0 -> debug=1 resp. tady je muj config...mozno nejaka spojitost s docker enviromentem, skusim se s tim jeste pohrat...
 
Kód:
{
    "username":"login",
    "password":"pass",
    "profile":"",
    "deviceid":"andasdsaroidtvr25",
    "webserver_ip":"192.178.1.16",
    "webserver_port":8082,
    "epg_dnu_zpetne":1,
    "epg_dnu_dopredu":2,
    "interval_stahovani_epg":12,
    "odstranit_hd":0,
    "pouzivat_cisla_kanalu":0,
    "poradi_sluzby":-1,
    "pin":"4321",
    "debug":0,
    "cesta_ffmpeg":"/usr/bin/ffmpeg"
}
 
Citovat
  


Přejít na fórum:


Prochází: 1 host(ů)