• 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:
  • 10 Hlas(ů) - 2.4 Průměr
  • 1
  • 2
  • 3
  • 4
  • 5
OTT/IPTV - jednodušeji to už nejde
#81
Smazáno
 
Citovat
#82
Aby bylo jasno. Smyslem tohoto tématu bylo najít co nejjednodušší řešení a ukázat, kam až je s touto jednoduchostí možné jít. Na to, co je míněno tou jednoduchostí je možné nahlížet z mnoha úhlů pohledu. Jak je to řešení opakovatelné pro laické uživatele, jak je stabilní, jak je závislé na změnách vnitřní struktury řešení u providerů, jaké zdroje pro svou funkci potřebuje nebo jak je provázán a jaká má omezení při používání v Kodi nebo backend serverech (nejčastěji Tvheadend). Použití jakéhokoliv řešení pomocí dynamicky vytvářených adres stremů nebo requestů na ně je jiná kapitola.
 
Citovat
#83
Saros: mě nefunguje 1 jinak je teď akce Premium balíček za 1 Kč ....
 
Citovat
#84
Chlapi už jste vymysleli script zase to dneska po mě chtělo změnit PHPSESSID 1
 
Citovat
#85
Kdo má kromě sledovani.tv ještě v nabídce ten "nový" přejmenovaný Barrandov News? Původně to byl Barrandov family
 
Citovat
#86
@predator.1 :::ten podarený barrandov news má v ponuke aj lepsi.tv


Přiložené soubory Miniatury
   
:::Nvidia Shield TV, Android 9, Xiaomi mi box 3, Kodi 18.8, hbo go cz, netflix,  iptv - sledovani.tv sk, horizon tv sk, magio go, skylink live cz,  skylink live sk komplet, 
 
Citovat
#87
Sledovanitv.cz, další varianta...

Tak jsem zase něco slepil dohromady. Není to ucelený script, spíše pár scriptů. Použití je možné pouze v Tvheadend, nelze použít v IPTV Simple Clientovi. Tam si musíte najít nějaké jiné řešení, nejlépe s php scriptem. Já jsem použil shell, protože provozuji LibreELEC a tam php jednoduše nespustím. Berte to spíše jako další inspiraci k vlastnímu dotvoření. Proto je také tento post určen těm, kdo se trochu vyznají v linuxovém shellu.

Vlastní playlist vypadá např. takto:

Kód:
#EXTM3U
#EXTINF:-1,ČT 1
pipe:///storage/.kodi/media/playlist/sledovanitv.cz/streamer.sh ct1
#EXTINF:-1,ČT 2
pipe:///storage/.kodi/media/playlist/sledovanitv.cz/streamer.sh ct2
#EXTINF:-1,ČT 24
pipe:///storage/.kodi/media/playlist/sledovanitv.cz/streamer.sh ct24
#EXTINF:-1,HBO
pipe:///storage/.kodi/media/playlist/sledovanitv.cz/streamer.sh HBO
#EXTINF:-1,HBO2
pipe:///storage/.kodi/media/playlist/sledovanitv.cz/streamer.sh HBO2
#EXTINF:-1,HBO3
pipe:///storage/.kodi/media/playlist/sledovanitv.cz/streamer.sh hbo_comedy
.
.
.

Používám tedy tradiční metodu vloženého scriptu, který nazývám streamer, který si spouští Tvheadend, přes pipe://. Streamer je poměrně tradiční, používá ffmpeg a jedinou změnou oproti podobným řešením (např. Playlist.o2tv) je to, že si přebírá parametr PHPSESSID ze souboru, kam byl již dříve uložený. Ušetří se tak drahocenný čas při přepínání kanálů. Parametrem volání streamer.sh je označení kanálu tak, jak je to vidět na webovém rozhraní Sledovanitv.cz. Rychlost přepnutí kanálů bývá většinou do 1 s. Kód streamer.sh vypadá takto:

Kód:
#! /bin/sh
session=$(cat /storage/.kodi/media/playlist/sledovanitv.cz/session.id | head -n 1)
stream="http://sledovanitv.cz/vlc/api-channel/"$1".m3u8?quality=40&capabilities=h265,adaptive&PHPSESSID="${session}
ffmpeg -fflags +genpts -loglevel fatal -i ${stream} -c copy -f mpegts -mpegts_service_type digital_tv -metadata service_provider=sledovanitv.cz -metadata service_name=$1 pipe:1

Hlavní rozdíl tohoto řešení oproti předchozím je tedy v tom, že se playlist opakovaně negeneruje, pouze se čas od času vytvoří nové PHPSESSID a uloží se do souboru session.id. Pro generaci PHPSESSID používám pro to tento script:

Kód:
#! /bin/sh
request="http://sledovanitv.cz/api/device-login?deviceId="$1"&password="$2"&version=3.2.004&lang=cs&unit=default"
json=$(wget -qO - ${request})
status=$(echo ${json} | jq -r '.status')
sessionid=$(echo ${json} | jq -r '.PHPSESSID')
echo ${sessionid}

Jeho parametry jsou dva, <deviceid> a <password>. Volání pak může vypadat takto:

Kód:
session.sh <deviceid> <password> > session.id

Tento script by měl být volán periodicky. Trvanlivost PHPSESSID je necelý měsíc, takže je na vás, jakou periodu si zvolíte. Za <deviceid> a <password> samozřejmě musíte zadat skutečné hodnoty.

Hodnoty <deviceid> a <password> pak lze získat scriptem:

Kód:
#! /bin/sh
request="http://sledovanitv.cz/api/create-pairing?username="$1"&password="$2"&type="$3
json=$(wget -qO - ${request})
status=$(echo ${json} | jq -r '.status')
deviceId=$(echo ${json} | jq -r '.deviceId')
password=$(echo ${json} | jq -r '.password')
echo ${deviceId} ${password}

Tento sript, kromě toho, že vrací <deviceid> a <password>, provádí také registraci zařízení. Parametry volání pak je <username> a <password> služby a <typ>, což je označení zařízení, které uvidíte u registrovaného zařízeních na účtu služby. Tento script není třeba volat opakovaně. Trvanlivost <deviceid> a <password> je neomezená.
 
Kód:
login.sh <username> <password> samsungtv
 
Citovat
#88
V nabídce sledovanitv.cz se také objevil kanál NASA TV UHD. Přidal jsme si ho do playlistu, ale vysílání mi jede pouze ve FHD. Zkoušel jsme měnit parametry requestu streamu "quality=". Dosud známé hodnoty jsou 20 pro SD, 40 pro HD, vyzkoušel jsme celou řadu hodnot, ale bez úspěchu. Bez ohledu na jakokoliv zadanou hodnotu parametru, stále ze serveru dostávám:

Kód:
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=3000000
http://82.99.177.209:7909/moderntv/stream/nasatv_uhd/61-hls/live-media.m3u8?_cdn_session=...
Je možné, že jsem ze strany služby omezen pouze na FHD, protože používám free tarif Na zkoušku. Můžete někdo, kdo máte zakoupený nějaký standardní tarif, vyzkoušet, jestli vám NASA TV UHD pojede skutečně ve 4K?

Díky.
 
Citovat
#89
zdravím pánové,

v aktuální verzi není možné používat archiv sledování tv? Připadne pustit pořad od začátku,nebo dát pauzu? Protože jsem to nikde neobjevil. Jsem v této oblasti úplný amatér. Díky
 
Citovat
#90
@medacek Toto téma se věnuje příjmu vysílání prostřednictvím playlistu. To, co ty hledáš bude spíše PVR doplněk, který asi v této chvíli archiv také nemá, ale jako pro laika bude pro tebe určitě zajímavější. 4 Podívej se sem Sledovanitv.cz.
 
Citovat
#91
JiRo presne ako pises ziadne 4 K

BANDWIDTH=3000000
to iste aj 61
 
Citovat
#92
JiRo: až dnes zkouším scripty... začal jsem tím že jsem si vytvořil "session.sh" ale při vyvolání přes SSH se jen vypíše PHPSESSION ale neuloží do souboru....
Co dělám špatně?
 
Citovat
#93
@otava5: vystup do suboru si musis presmerovat sam. JiRo to tam aj uvadza v priklade volania:
Kód:
session.sh <deviceid> <password> > session.id
 
Citovat
#94
palinek / JiRo: jsem slepý ">" mi tam chybělo 1 a já už si to upravoval script takto: echo ${sessionid} > /cesta/session.id 1

Scripty aplikovány a vše funguje díky @JiRo
Mohu potvrdit že se již nemusí popřepínávat kanály aby se objevil obraz, nyní vše funguje i po změně PHPSESSID - vyzkoušeno na 3 klientech.... 16
 
Citovat
#95
Je moznost ako v tvheadende vytvorit aj stream pre "eroxx". Stream sa spusti ale na tv je "odemknete prosim rodicovsky zamek"
 
Citovat
#96
@bojler: Nemám možnost to otestovat, ale fungovat by to mělo po odemčení na webu. Jednoduše na ten kanál klikni a zadej kód. Mělo by to fungovat tak dlouho, dokud to znova nezamkneš.

EDIT: Odemknutí kanálů v Sledovani.TV
Podíval jsem se na to. Je zapotřebí použít metodu popisovanou @Saros a následně @JiRo s využitím PHPSESSID. API jsem si našel z mobilní aplikace a ta odemyká kanály jen za pomoci PHPSESSID. Proto je nejlepším řešením právě PHP skript, protože jak víme, PHPSESSID se mění. 

Princip je vědět pin a PHPSESSID. Tyto údaje se zadávají sem:
Kód:
http://sledovanitv.cz/api/pin-unlock?pin=____PIN____&whitelogo=1&PHPSESSID=____SESSID____

Upravte ____PIN____ a ____SESSID____. Výstupem je seznam kanálů v JSON. Toto jsem ale do PHP skriptu nepotřeboval, a proto jej jen načítám, nic víc po něm nechci. Zde tedy upravený PHP skript (abych řekl pravdu, vůbec PHP neovládám, ale něco jsem tam dal, vyzkoušel jsem to a funguje to):


PHP kód:
<?php
$channel 
$_GET["ch"];
$cap $_GET["c"];
$q $_GET["q"];    
$json 
file_get_contents('http://sledovanitv.cz/api/device-login?deviceId=xxxxxxxxxx&password=xxxxxxxxxx&version=3.2.004&lang=cs&unit=default');
$data json_decode($json,true);
$sessid $data['PHPSESSID'];
file_get_contents("http://sledovanitv.cz/api/pin-unlock?pin=xxxx&whitelogo=1&PHPSESSID=".$sessid);
$url = ("http://sledovanitv.cz/vlc/api-channel/".$channel.".m3u8?quality=".$q."&capabilities=".$cap.",adaptive&PHPSESSID=".$sessid);
header('Location: '.$url.'');
exit;
?>
Volání funguje stejně, jako u kódu od @Saros. Tady například uvádím požadovaný Erox v HD H.265:
Kód:
http://vaseurl/skript.php?ch=eroxHD&c=h265&q=40
Soukromý server - Ubuntu 18.04, TVHeadend 4.2.8-36
Dell Latitude E6420 - W10, TVHPlayer Beta, Kodi 18.5
Lenovo Vibe P1ma - Android 5.1, TVHClient + Yatse, Kodi 18.5
 
Citovat
#97
Mám problém....script na vytvoření PHPSESSID mi z příkazového řádku funguje ale když ho zadam do crontab pod LE tak mám prázdný soubor. Dokáže někdo poradit?
 
Citovat
#98
Tak se mi to podařilo rozjet přes Cron Plugin přes System.Exec(....).Zkoušel jsem i kodi-send --action="System.Exec.(..)". do crontabu ale nepodařilo se... Co ten plugin dělá víc než klasický crontab
 
Citovat
#99
@otava5 Pokud to spouštíš přes crontab, musíš si být jistý dostupností dat a aplikací (např. wget, jq, atd.) a možná taky nastavit u souboru scriptu příznak executable. Nejlepší bude dát do příkazu v crontab přesměrování stderr. Na konec řádku v crontab, kterým script spouštíš, přidat přesměrování do souboru: "... 2> /.../error.log". V souboru error.log pak uvidíš chyby, na kterých to kolabuje.

Já jsem měl podobný problém, v jiném scriptu s jq v LE. Příkaz jq v LE standardně není, dostane se tam, až z addon system-tools a tak je místo pouhého jq třeba v některých případech zadat celou cestu k němu. Pokud zadáš jq a jsi přihlášen přes SSH jako root, tak to funguje, ale pokud se objeví ve scriptu, který spouštíš přes crontab nebo z jiné aplikace (např. Tvheadend), je třeba zadat celou cestu k příkazu.
 
Citovat
Client: Děkuji pane za radu, nakonec pomohlo zadání úplné cesty do sh scriptu
 
Citovat
  


Přejít na fórum:


Prochází: 1 host(ů)