XBMC-Kodi.cz

Úplná verze: streamy kuki tv
Prohlížíte si holou variantu vašeho obsahu. Prohlédněte si plnou verzi s příslušným formátováním.
Stran: 1 2 3 4 5 6 7 8
Neviem aky hrdina si mysli ze zverejnujem linky na stranke XXYYYYXXXYYY nech sa preplachne v studenej vode ja mam platenu IPTV seriem na celi odpad co lezi na internete a nepotrebujem to zverejnovat kedze sa najde vela blaznov co to zverejni.... ani nikdy som to nemal potrebu robit .... ak mas nieco na srdci napis sukromnu spravu... a nie osocovat niekoho co ani nepoznas ani nic o nom nevies dakujem.....
to VendeTTa121, to bola reakcia na mňa a môj príspevok? Nič také som tam nepísal.
Buď v klidu, se nezorientoval...
Prepacte chalani chcel som pisat do vlakna ktore tu bolo na danu temu bolo vymazane tak som to tu nechal na chvilku lebo nepekne pisal na moje meno chcel som prispevky zmazat ale taku moznost som tu nevidel tak ak chcete kludne vymazte tento aj ten predtim prispevok
Cavte neviem ci to pomoze API kuki je na tejto adrese: https://vm.kuki.cz/api/
To vypadá dobře, ale účtem Kuki se tam nedostanu. 10
Cavte uz je moznost mat kuki tv aj na Slovensku: https://www.kukitv.sk/
Nyní je 14 dní zdarma u Kuki zkusme scriptík 1
Mírná změna struktury url, zkoušel jsem jenom mimo TVH, jednou se mi podařilo na konzoli přes ffmpeg "vysypat čaj" TV vysílání CT1 HD.

V původním scriptu je:
Kód:
http://media.kuki.cz:8116/$1/$2/stream.m3u8?...
Mně se to rozeběhlo při
Kód:
http://media.kuki.cz:8116/$1/stream.m3u8?type=live&...
Nepodařilo se mi ale správně parsovat proměnné he1 a he2, rozeběhlo se to, až když jsem je tam zadal jejich obsah v absolutní hodnotě. Nejsem na tom závislý, takže když to nechodí na první zapnutí, tak to raději přenechám někomu dalšímu...
tak se
Ahoj, našel by se tu někdo, kdo by mi pomohl krok za krokem dostat Kuki do TVH ? Vše jsem si tu pročetl, pročetl jsem i vlákno co se tomu věnuje a nejsem z toho vůbec chytrej. Vlastně jsem zjistil, jak hodně jsem mimo a že to sám dokupy nikdy nedám. Jsem ochoten za to zaplatit. Díky moc.
Známý by Kuki taky rád, pořídil jsme si tedy službu Kuki menší a chystám se na to vrhnout o víkendu. Nic neslibuji, ale s tím, co už tu je, by to snad mohlo dopadnout. Tak chvíli vydrž.
Děkuji za odpověd mistře, věřím, že se zadaří, klidně si počkám :-)
Tak jsme se na to vrhnul, nainstaloval Kuki na mobil, odchytal komunikaci a začal sestavovat script. Skončil jsme ale poměrně záhy. Requesty na .../api/register prošly v pohodě. Zadrhlo se to ale u přihlášení. POST s přihlašovacími údaji na .../api/login/validate.json vrátí sice na první pohled smysluplnou odpověď, ale při dalším requestu na .../api/contract/list.json mi server vrátí úplně jiné číslo smlouvy, než je to moje. Pak není divu, že další POST na .../api/add-device s číslem smlouvy neprojde. Vyzkoušel jsem tam vnutit mé číslo smlouvy, skončilo to odpovědí serveru 406 NOT ACCEPTABLE. Celkem pochopitelně. Číslo cizí smlouvy, které mi vrátil předchozí POST, jsem nenašel odvahu vyzkoušet. V detailech té cizí smlouvy jsou konkrétní údaje (adresa, atp.), takže je to reálná smlouva, a já bych někomu nerad zaregistroval své zařízení.

Nezkoušel už někdo podobný postup? Třeba 1 Rád bych se s někým podělil o zkušenosti.

Tuto cestu řešení, tedy kompletní podporu implementace Kuki do Tvheadend, zatím opustím a pro ty, kteří se bez Kuki nedokážou (nebo nemohou) obejít doplním následující popis, jak postupovat.

Řešení je celkem triviální, shodné s tím, co tady už před časem zveřejnil , jen je upravené na současný stav služby Kuki a také odpovídá mému stylu řešení (které jsem opsal od ) takovýchto scriptů.

1. Pro použití je třeba mít nainstalovanou aplikaci Kuki na Android mobilu nebo tabletu. Z ní použijeme deviceid. Najdete ho na stránce nastav > zařízení. Je to číslo (poměrně dlouhé), které najdete pod názvem vašeho mobilního telefonu v přehledu zařízení, která máte pod službou registrovaná.

2. Pro Tvheadend budete potřebovat vytvořit playlist, který bude vypadat např. nějak takto:
Kód:
#EXTM3U
#EXTINF:-1,CT 1
pipe:///storage/.kodi/media/playlist/kuki/streamer.sh ct1hd
#EXTINF:-1,CT 2
pipe:///storage/.kodi/media/playlist/kuki/streamer.sh ct2hd
...
#EXTINF:-1,AXN White
pipe:///storage/.kodi/media/playlist/kuki/streamer.sh axnwhite
#EXTINF:-1,AXN Black
pipe:///storage/.kodi/media/playlist/kuki/streamer.sh axnblack
...
#EXTINF:-1,NASA TV UHD
pipe:///storage/.kodi/media/playlist/kuki/streamer.sh nasa_uhd
kde:
pipe:///storage/.kodi/media/playlist/kuki/streamer.sh - cesta k souboru se scriptem (bude uveden dále)
ct1hd, ct2hd, ... - jsou identifikace jednotlivých kanálů ve službe Kuki.

3. script (já ho označuji standardně streamer.sh), který si Tvheadend spustí při ladění nebo po přepnutí na kanál, bude vypadat takto:
Kód:
#!/bin/sh
channel=$1
deviceid=xxxxxx
prog=/storage/.kodi/addons/tools.ffmpeg-tools/bin/
data=/storage/.kodi/media/playlist/kuki/
#deviceid=$(cat ${data}device.id | head -n 1 | tr -d '\n' | tr -d '\r')
json=$(wget -q -O - --post-data=sn=${deviceid} https://as.kuki.cz/api/register)
session=$(echo ${json} | jq -r '.session_key')
json=$(wget -q -O - --header=X-SessionKey:${session} --post-data="type=live&ident=${channel}" https://as.kuki.cz/api/play-token)
sign=$(echo ${json} | jq -r '.sign')
expires=$(echo ${json} | jq -r '.expires')
stream=http://media.kuki.cz:8116/${channel}/stream.m3u8?sign=${sign}\&expires=${expires}
#stream=$(wget -q -O - ${stream} | head -4 | tail -1)
${prog}ffmpeg -fflags +genpts -loglevel fatal -i ${stream} -vcodec copy -acodec copy -f mpegts pipe:1
Místo xxxxxx samozřejmě dosaďte vaše deviceid, které najdete v aplikaci Kuki ve vašem androidu. Můžete také použít i jinou metodu, a uložit si deviceid do souboru odkud si ho skript načte. Tato možnost je ve skriptu zakomentovaná, pokud se pro ní rozhodnete, stačí uložit deviceid do 1. řádku příslušného souboru (device.id). Soubor streamer.sh si samozřejmě můžete pojmenovat jakkoliv jinak a umístit ho také do libovolného místa. Jen to samozřejmě musíte zohlednit v obsahu playlistu.

[EDIT] Skript používá aplikaci jq. Pokud ve vašem systému chybí, je třeba ji nainstalovat. V případě máte-li LibreELEC, je aplikace jq součástí addon System Tools, ze sekce Doplňky programů repozitáře LibreELEC Add-ons.

[EDIT] Po vytvoření streamer.sh je třeba u něj nastavit atribut spustitelného souboru. Tzn. použít příkaz chmod +x streamer.sh.

4. Kuki používá nyní pro distribuci streamů protokol HLS. To má za následek trochu delší dobu přepínání a náběhu kanálu, a co je hlavní, i poměrně dlouhou dobu při skenování kanálů. Proto je třeba před skenováním nastavit minimální počet současně skenových kanálů. Já jsem to zatím vyřešil tím, že si parametr sítě Maximální počet vstupních streamů nastavím na hodnotu 1. Po naskenování ho pak změním na požadovanou hodnotu (nebo 0). Zkoušel jsem, zda není na straně serveru nějaké omezení současně sleodvaného počtu kanálů. Vyzkoušel jsme jich 6. Více jsme nezkoušel, ale zdá se, že tady žádné omezení nebude (tedy kromě propustnosti vašeho připojení a výkonu HW). 

5. Pokud se obejdete bez HLS, je možné si z manifestu vybrat rovnou příslušný stream. Ty jsou řazené od toho nejkvalitnějšího, který je stabilně v manifestu každého kanálu na 4. řádku. Tuto možnost jsme ale ve scriptu zakomentoval, je to řádek #stream=$(wget -q -O - ${stream} | head -4 | tail -1), protože mě to nějak zlobilo a stream se v Kodi nepřehrál, ačkoliv pokud jsem ho zadal do VLC, fungoval bez problémů. Je tedy na nějakém dalším šikovném uživateli, aby přišel na to, proč mi to nefungovalo. Další téma k řešení je problematika HLS a ffmpeg, případně HLS a Kodi, které by ve verzi 18 volbu streamu HLS přímo z přehrávače měl (snad) také umět. Ale to už je téma mimo základní problematiku, tedy sledování Kuki v Kodi.

6. Trochu problém je s určením identifikace kanálů, které se zadávají jako parametr skriptu streamer.sh. U většiny kanálů funguje použití názvu kanálu, odstranění mezer a malá písmena. Ale ne vždy. Zatím se mi ze serveru úplný seznam kanálů nepodařilo získat, ale připravuji druhý script, který by to měl umět. Tedy jednorázově vygenerovat kompletní playlist všech aktuálních kanálů vaší služby. Tak ještě vydržte...
: Kuki jsem dělal, ale už si to vůbec nepamatuji... Tuším, že registraci zařízení jsem nechal udělat to jejich předělané Kodi, a pak jsem jen používal to již registrované zařízení.. Neodladěný kód, který jsem používal:
Kód:
starý skript již není aktuální, vymazáno... v případě zájmu tu někde v kuki tématu byl vložen už dříve...

První parametr kanál, druhý parametr bitrate.. Ale nakonec to dopadlo tak, že neustále měnili kvality a mě se nechtělo vymýšlet jak vždy vytáhnout tu co bych optimálně potřeboval, tak jsem nejdřív ještě dělal verzi která to brala podle pořadového čísla streamu v playlistu a nakonec jsem se na to nakonec vykašlal úplně a přešel jinam.. :-)

//EDIT: Joo, vidím, že už jsem to tady jednou dával.. :) Tu registraci bych zkusil opsat z té Kuki aplikace, to je asi nejschůdnější řešení.
OK díky za snahu. Ale prezentuješ svůj původní scrtipt, který již nefunguje. Kuki používá HLS, takže parametry bitrate se již při adresování streamu nepoužívají. Tím tak trochu mateš ostatní, protože tento script jim už fungovat nebude. Ale přesto ještě jednou díky.

EDIT: Já využívám registraci z aplikace v mobilu, ale to je celkem fuk. Jen je to u toho mobilu přeci jen asi o chlup jednodušší.

Jak jsem výše uvedl, připravil jsem generátor playlistu služby Kuki. Generátor využívá pro přístup k datům vaší služby registraci na jiném zařízení (také je popsáno výše).

Generátor vytvoří playlist pro Tvheadend, ve kterém je místo konkrétních adrese streamů volání (pomocí metody pipe://) skriptu streamer.sh. Playlist obsahuje všechny kanály, které máte v okamžiku generace nastaveny. Generace se provádí pouze jednou (nebo vždy po změně v kanálech služby). Výsledný soubor playlistu označuji jako generický, protože obsahuje všechny kanály (televizní i rozhlasové). Musíte si tedy, např. v nastavení služeb vnutit u radiových kanálů příslušný typ služby, jinak budou v Kodi zobrazovány v nabídce TV.

Ve skriptu musíte, stejně jako ve streamer.sh doplnit vaše  deviceid. Kde ho najdete uvádím ve výše uvedeném postu. Můžete také použít i jinou metodu, a uložit si deviceid do souboru odkud si ho skript načte. Tato možnost je ve skriptu zakomentovaná, pokud se pro ní rozhodnete, stačí uložit deviceid do 1. řádku příslušného souboru (device.id). 

Celý script pracuje s daty načtenými ze služby Kuki, které jsou ve formátu json. Script primárně načtená data uloží do souboru channels.json, kde si je můžete prohlédnout a případně využít při rozšíření funkcí skriptu. Skript ale tento soubor k ničemu dalšímu nepoužívá. Parsování json dat provádím zásadně pomocí jq aplikace, která by měla být běžnou součástí linux instalací.

Vlastní script playlist.sh je zde:
Kód:
#!/bin/sh
deviceid=xxxxxx
prog=/storage/.kodi/addons/tools.ffmpeg-tools/bin/
data=/storage/.kodi/media/playlist/kuki/

#deviceid=$(cat ${data}device.id | head -n 1 | tr -d '\n' | tr -d '\r')

playlist=${data}playlist.generic.m3u8

PREFIX=#EXTM3U
PREFIX1ST=#EXTINF:-1,
PREFIX2ND=pipe://${data}streamer.sh

json=$(wget -q -O - --post-data=sn=${deviceid} https://as.kuki.cz/api/register)
session=$(echo ${json} | jq -r '.session_key')
json=$(wget -q -O - --header=X-SessionKey:${session} https://as.kuki.cz/api/channels.json)

echo ${json} | jq '.[]' > ${data}channels.json

i=0
max=$(echo ${json} | jq '.|length')
printf "$PREFIX\n" > $playlist
while [ $i -lt $max ] ; do
 name=$(echo ${json} | jq ".[$i].name" | tr -d '"')
 type=$(echo ${json} | jq ".[$i].stream_type" | tr -d '"')
 code=$(echo ${json} | jq ".[$i].timeshift_ident" | tr -d '"')
 printf "$PREFIX1ST%s\n" "$name" >> $playlist
 printf "$PREFIX2ND %s\n" "$code" >> $playlist
 i=$((i+1))
 printf "Generated: %s channels\r" $i
done
printf "\nKuki playlist done\n"

exit

Osobně pokládám práci na připojení Kuki do Tvheadend za ukončenou. Případné dotazy samozřejmě rád zodpovím. Zda se ještě vrátím ke komplexnímu řešení, tzn. včetně registrace, teď neslibuji. Věnoval jsme tomu včera dvě hodiny a jak jsem uvedl výše, nebyl jsem úspěšný a vzhledem k tomu, že sám Kuki normálně nepoužívám, pro to nemám dostatečnou motivaci. Ostatně, uvedený náhradní způsob, kdy se využije registrace na jiném zařízení, je zatím plně dostačující. 

Ohledně registrace se samozřejmě nabízí jedna otázka, jak na to, že používáte jednu registraci na více zařízeních, bude Kuki reagovat. Doporučoval bych abyste po registraci uvedené zařízení nepoužívali v jednu chvíli společně s Tvhedeadend. Pro získání deviceid nutně nemusíte použít mobil nebo tablet. Je také možné, jak píše výše , si stáhnout aplikaci Kuki, která je mimochodem také postavená na Kodi, a použít registraci z ní.
Nechal jsme toto téma převést do hlavního fóra Live TV & PVR. Jeho původní umístění, IPTV Streamy, je určené především pro lovce free streamů a téma příjmu TV prostřednictvím placené služby Kuki se v něm ztrácelo.
- Mohl by si mi prosím poradit, klidně přes zprávy ať to tu nespamujem, co s tím mám dělat ? :-D Ačkoli jsem přečetl vše co s daným tématem souvisí, tak moje znalosti na to nestačí. Kam script nakopírovat, kde změnit id na id mého zařízení a co pak dál ? Vím, je to otrava, ale fakt jsem v tomhle úplně mimo :Big Grin

PS : momentálně mi TVH běží na Raspberry, je možné to rozjet i jinde ? Mám TVH ještě na NASu. 

Díky za každé nakopnutí :-)
: pravda, už to není aktuální, svůj post jsem upravil :)
Klidně to použij v LibreELEC nebo v jakémkoliv jiném Linux-base systému. Podmínkou je, aby měl nainstalovanou jq aplikaci, což je dnes podle mne téměř pravidlem. [EDIT] Pokud ve vašem systému chybí, je třeba ji nainstalovat. V případě máte-li LibreELEC, je aplikace jq součástí addon System Tools, ze sekce Doplňky programů repozitáře LibreELEC Add-ons.

Postup bude následující:
  1. Adresář, kde to budeš celé provozovat si zvol kdekoliv, kam můžeš v systému zapisovat. Adresář, který na to používám já, najdeš v proměnné data každého z obou skriptů. Pokud si zvolíš nějaký jiný, musíš cestu k němu uložit právě do této proměnné, tzn. nahradit tam stávající cestu tou tvoji cestou.
  2. Podobně musíš skript upravit  i co se týká cesty k ffmpeg, ta je uložená v proměnné prog. Pokud používáš LE 9.x, musíš si nainstalovat addon ffmpeg-tools z repozitáře LibreELEC Add-ons, pokud používáš LE 8.x, stačí tu cestu nahradit prázdným řetězcem.
  3. Do adresáře umístíš skript steramer.sh, ve kterém buď hodnotu v proměnné deviceid (teď je tam xxxxxx) upravíš podle tvého deviceid. Kde deviceid najdeš, je uvedeno v postech výše. Jinou možností je uložit si hodnotu deviceid do 1. řádku textového souboru script.id a u skriptu odkomentovat (odstranit úvodní znak #) řádek #deviceid=$(cat ${data}/device.id | head -n 1), to způsobí, že si script po každém spuštění načte hodnotu deviceid ze souboru.
  4. [EDIT] Jako poslední věc je třeba u souboru streamer.sh nastavit atribut spustitelného souboru. Tzn. použít příkaz chmod +x streamer.sh.
  5. V adresáři si vytvoříš ručně soubor playlistu. Název souboru je celkem libovolný, jen ho pak musíš stejně zadat do příslušného parametru sítě v TVH. 
  6. Alternativně můžeš pro vytvoření souboru použít druhý script, playlist.sh. Umístíš ho do adresáře a upravíš hodnotu proměnné deviceid stejně jako u streamer.sh. Můžeš samozřejmě použít i stejnou metodu s využitím souboru device.id. Po spuštění ti skript vytvoří soubor playlist.generic.m3u8. Doporučuji soubor zkopírovat a editovat podle toho, které kanály budeš chtít v TVH mít.
S jakými problémy se můžeš setkat, jaká mám doporučení:
  • Skenování kanálů je ze strany zpracování v TVH poměrně pomalé, takže vhodné omezit počet současně skenovaných kanálů. Dá se to zařídit tak, že před skenovánín nastavíš parametr sítě Maximální počet vstupních streamů na hodnotu 1, max. 2. Po naskenování ho pak změníš na požadovanou hodnotu nebo 0.
  • Radiové kanály skript playlist.sh vygeneruje společně s těmi televizními. Musíš si to tedy ošetřit sám. Buď je z playlistu jednoduše vyhodit nebo v příslušných službách v TVH vnutit typ "Radio", případně vygenerovaný playlist rozdělit na dva a pro každý z nich vytvořit v TVH vlastní síť. Pak ale musíš vytvořit kopii streameru a v něm změnit ve volání ffmpeg typ zdroje na radio.
  • Po každém mapování kanálů se stává, že většina TV kanálů je spuštěna pouze s audio streamem. Zřejmě to souvisí s použitým HLS protokolem. Po druhém spuštění kanálu se vše upraví.
  • Doporučuji v běžném používat ve volání ffmepg option -loglevel fatal (ve streamer.sh je tento parametr defaultně použit). HLS protokol, který Kuki používá, generuje v ffmpeg značné množství hlášek, což má za následek znatelné zpoždění při skenování i přepínání kanálů. V současné chvíli se prodleva při přepínání pohybuje cca do 2 vteřin.
  • Naopak nedoporučuji používat -re (ve streamer.sh proto není tento parametr defaultně použit). Zejména u internetových připojení s kolísající kvalitou. Pokud je použito, buffer Kodi playeru (viz crtl-shift-o zadané při přehrávání v Kodi) se zaplňuje na hodnoty kolem 15%, což může být příčinou méně plynulého přehrávání. Pokud se parametr -re nepoužije, datový tok ze serveru služby se sice stane méně plynulým (což ale ničemu nevadí), ale zaplnění bufferu Kodi playeru se pohybuje soustavně v hodnotách 75-100 % (spíše je to tak, že je většinou 100 % a občas poklesne až k 75 %)
Obecně platí, že to, co se tady formou skriptů pro získávání playlistu placených služeb prezentuje, je určeno pro zkušenější uživatele. Nemám v úmyslu se každému detailně věnovat. Pokud ti můj návod nestačí, zeptej se, pokusím se odpovědět lépe. To nelze pokládat za spamování. Rozhodně ale nemám zájem ani čas, a upřímně, ani chuť (nic ve zlém) s každým ten problém řešit individuálně přes PM. To by nebylo účelné, už kvůli ostatním, kteří by tak přišli o užitečné informace.
Stran: 1 2 3 4 5 6 7 8