• 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
#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
  


Příspěvků v tématu
RE: OTT/IPTV - jednodušeji to už nejde - od JiRo - 07.12.2018, 21:40

Přejít na fórum:


Prochází: 4 host(ů)