• 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:
  • 7 Hlas(ů) - 1.86 Průměr
  • 1
  • 2
  • 3
  • 4
  • 5
streamy kuki tv
#41
Mockrát ti děkuji za vyčerpávající info ,myslím, že podle tvého postupu už bych to mohl zvládnout, zase tak složité mi to teď nepřijde :-) Každopádně kdyby něco, zkusím se tu zase zeptat. Až přijdu večer z práce, tak to vyzkouším. Tomu, že se nemůžeš věnovat každému zvlášť samozřejmě chápu, proto děkuju za info, které určitě bude přínosem i pro jiné.
 
Citovat
#42
Ahoj, prosím o pomoc. Vygeneroval jsem playlist.generic.m3u8, vytvořil skript streamer.sh (použil jsem LinuxMint), vytvořené soubory jsem společně nakopiroval do Raspberry /storage/.kodi/media/playlist/kuki. Pak jsem na Raspberry nainstaloval TVHeadend, dostal se do konfigurace a dal nevím, přidám síť Automatic IPTV a chce to po mě url, kde je playlist, ale ten je kartě v Raspberry. Může mě někdo prosím postrčit?
OdroidN2, AndroidTV by Galv0nized, Kodi 19.0, Artic Zephyr
 
Citovat
#43
@viky808 Do položky URL zadáš lokální adresu souboru. Začínat to tedy bude file:///storage/.kodi/media/playlist/kuki. Pozor, ty lomítka na začátku jsou skutečně 3. První dvě lomítka patří ke standardnímu označení lokálního umístění souboru, tedy file://. Třetí lomítko je součástí úplně cesty k cílovému adresáři, tedy /storage/.kodi/media/playlist/kuki. Samozřejmě, ještě tam musí být vlastní jméno souboru. Pokud je to např. playlist.m3u8, tak pak to celé bude file:///storage/.kodi/media/playlist/kuki/playlist.m3u8.
 
Citovat
#44
@Client: ok, děkuji. file:///storage/.kodi/media/playlist/kuki/playlist.generic.m3u8,
muxů to našlo 50, bohužel skenování neúspěšné, služba žádná, něco dělám špatně, budu zkoušet a hledat dál
OdroidN2, AndroidTV by Galv0nized, Kodi 19.0, Artic Zephyr
 
Citovat
#45
Je to se mnou marný, zasekl jsem se hned na začátku :-( 

Kód:
Raspi:~/.kodi/media/playlist/kuki # sh playlist.sh
: not found: line 5:
: not found: line 7:
: not found: line 9:
: not found: line 13:
wget: server returned error: HTTP/1.1 403 FORBIDDEN
wget: server returned error: HTTP/1.1 403 FORBIDDEN
: not found: line 17:
: not found: line 19:
: nonexistent directoryan't create /storage/.kodi/media/playlist/kuki
playlist.sh: line 34: syntax error: unexpected end of file (expecting "do")

Při pokusu o spuštění streamer.sh
Jen dodám že LE je verze 8.2.5 ...žádný addon ffmpeg-tools v repozitáři LibreELEC Add-ons není

Kód:
Raspi:~/.kodi/media/playlist/kuki # sh streamer.sh
wget: server returned error: HTTP/1.1 403 FORBIDDEN
wget: server returned error: HTTP/1.1 403 FORBIDDEN
/ffmpeg: not found13: /storage/.kodi/addons/tools.ffmpeg-tools/bin
 
Citovat
#46
@vrzy Udělali jsme každý jednu chybu. 10 Ty jsi nečetl pozorně. Pokud máš LE 8.x, který má ffmpeg již nainstalovaný v systému, musíš do proměnné prog vložit prázdný řetězec. Stačí tedy ve streamer.sh upravit řádek prog=/storage/.kodi/addons/tools.ffmpeg-tools/bin na prog=.

Druhou chybu a závažnější, za kterou se omlouvám, jsem udělal já. Aplikace jq není standardně v LE instalovaná, jak jsem si myslel. Musíš nainstalovat addon System Tools ze sekce Doplňky programů repozitáře LibreELEC Addons. Já už to udělal asi před léty a protože své instalace pouze upgrade-uji, zapomněl jsem na to. 10 Tak ještě jednou sorry. Popis upravím.

Jinak tam vidím nějaké další chyby. No uvidíme, až opravíš ty dva výše uvedené problémy, jak to dopadne pak. Klidně se znova ozvi. Možná že jsem ještě na něco zapomněl. To musíme dát dohromady. 6

@viky808 Já prostě zblbnul vše, co se dalo. 10 Ještě jsem zapomněl připomenout, že u souboru streamer.sh je třeba nastavit atribut spustitelného souboru. Tzn. použít příkaz chmod +x streamer.sh.
 
Citovat
#47
Četl jsem pozorně, jen jsem nevěděl, co přesně znamená prázdný řetězec, zkusil jsem to tedy nechat úplně prázdné. Teď jsem zkusil to co říkáš ty, tedy prog=.
A tady je výsledek

Kód:
Raspi:~/.kodi/media/playlist/kuki # sh playlist.sh
: not found: line 3:
: not found: line 5:
: not found: line 7:
: not found: line 9:
: not found: line 13:
wget: server returned error: HTTP/1.1 403 FORBIDDEN
wget: server returned error: HTTP/1.1 403 FORBIDDEN
: not found: line 17:
: not found: line 19:
: nonexistent directoryan't create /storage/.kodi/media/playlist/kuki
playlist.sh: line 34: syntax error: unexpected end of file (expecting "do")
Raspi:~/.kodi/media/playlist/kuki # sh streamer.sh
: not found: line 4:
wget: server returned error: HTTP/1.1 403 FORBIDDEN
wget: server returned error: HTTP/1.1 403 FORBIDDEN
streamer.sh: line 13: /ffmpeg: not found
Raspi:~/.kodi/media/playlist/kuki #
 
Citovat
#48
@vrzy Aha, ty nemáš LibreELEC, ale Raspi, to mi nedošlo. Tak to bude opět o něčem jiném. No jo, tam bude problém v shellu. Já to píšu v sh shellu v LibreELEC v domnění, že to bude plně přenositelné. Ale zřejmě to shell v Raspi nedá. Já se v Linux moc nevyznám, z linuxových systémů používám jen LibreELEC, případně NAS Asustor, takže s určitostí nedokážu říci, jak by to mělo vypadat, aby to fungovalo na všech Linux systémech. Víceméně předpokládám, že ten, kdo si to chce implementovat, zná shell na kterém to bude spouštět, a dokáže si tu syntaxi upravit.

Z toho výpisu je vidět, na kterých řádcích jsou syntaktické chyby, patrně to bude souviset s přiřazením hodnot proměnným. Zajímavé jsou ty chyby wget 403 FORBIDDEN. To ukazuje, že se patrně chybně interpretuje deviceid. Pokud ho čteš ze souboru, asi tam bude problém s koncem řádků, který by měl být dle standardu UNIX, ne DOS/Windows. Zkus raději zadat deviceid přímo do skriptu. Další chyba je vidět u přístupu do adresáře /storage/.kodi/media/playlist/kuki. Máš ho správně zadaný? Poslední chyba se týká syntaxe smyčky while do done.

U streamer.sh jsou stejné chyby u wget jako výše. Pak to nemůže nalézt ffmpeg, protože patrně nemáš zadanou správně cestu k němu.

Ono je to tak, že mé řešení je hlavně o tom, kde lze potřebná data nalézt, jaká je jejich struktura a co je třeba s nimi udělat. O syntaxi kódu a systémové závislé záležitosti se musí postarat ten, kdo řešení používá. Více poradit nejsme v tomto případě schopný. Je možné, že moje scripty jsou neumělé a kostrbaté, ale já nic lepšího nevymyslím. Jak jsem napsal, nejsem člověk obeznámený rutinně s Linuxem a pokud nějaký skript píši, většinou u toho mám v ruce příručku shellu a lovím syntaxi volání linux aplikací z helpu nebo popisu na internetu.
 
Citovat
#49
Raspi mám pojmenované raspberry, na kterém běží libreelec. Deviceid nečtu ze souboru, ale je přímo ve skriptu. Řekl bych, že cestu mám dobře zadanou, kontroloval jsem několikrát.

Kód:
#!/bin/sh
deviceid=a46d3093f0b
prog=.
data=/storage/.kodi/media/playlist/kuki

#deviceid=$(cat ${data}/device.id | head -n 1)

playlist=${data}/playlist.generic.m3u8

PREFIX=#EXTM3U
PREFIX1ST=#EXTINF:-1,
PREFIX2ND=pipe:///storage/.kodi/media/playlist/kuki/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 '.[]' > 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
 
Citovat
#50
@vrzy Aha, já myslel, že Raspi je nějaké Linux distro pro RPi. Alespoň vidíš, jaký já jsem "Linuxák..." 10.

Z toho prog=. vyhoď tu tečku. V tom mém popisu to byla tečka za větou.

A poslední možnost. Nemáš náhodou ten soubor ve formátu DOS? Nevím, čím a kde to edituješ, ale pokud sis to stáhl z fóra, tak je to možné. Buď to změň v editoru (pokud používáš takový, co to umí) nebo použij v LE aplikaci dos2unix a převeď to do Unix formátu (konce řádků jsou pouze LF, zatímco DOS formát má konce řádků CR LF.
 
Citovat
#51
No zato já s Linuxem zkušenosti nemám žádné.
Zkoušel jsem jak
prog=
prog=.
prog=úplná cesta
Výsledek vždy stejný.

Edituji pod Windows v notepad++ a ted v práci v telefonu na androidu. Co znamenají ty konce řádků nemám tušení, slyším poprvé, zkusím si o tom něco najít.
 
Citovat
#52
@vrzy V Notepad++ můžeš převést soubor na UNIX formát jednoduše. Použij Úpravy > Konverze konce řádků (EOL) > Konvertovat do formátu UNIX. Co se týče obsahu prog, tak pokud máš LE 8.x, měla by tam být prog= a pokud máš LE 9.x, musíš nainstalovat addon a pak by tam mělo být prog=/storage/.kodi/addons/tools.ffmpeg-tools/bin. Bez té tečky, to je konec věty. Tady není prostor na zkoušení jednoho nebo druhého. V tom problém není. Musíš vědět, co máš za systém a toho se držet.
 
Citovat
#53
Tak na to kouknu zase večer po práci až budu u pc, na android nemůžu nic takového co by to umělo najít.
Mám LE 8.2.5, ale i když tu proměnnou prog nechám prázdnou, hodí to stejnou chybu. Zaměřím se tedy na tu konverzi konce řádků a uvidíme. Děkuji ti za tvou trpělivost se mnou :-)

Edit : tak jsem trochu pokročil a podařilo se mi konečně vygenerovat playlist :-) Kdyz jsem to samé udělal u scriptu streamer tak mi to po jeho spuštění hodí tohle. Zkusím pak tedy doma u pc.
Kód:
Raspi:~/.kodi/media/playlist/kuki # sh streamer.sh
wget: server returned error: HTTP/1.1 406 NOT ACCEPTABLE
streamer.sh: line 13: /ffmpeg: not found
Raspi:~/.kodi/media/playlist/kuki #
 
Citovat
#54
@Client: "použít příkaz chmod +x streamer.sh" - udělal jsem, žádná změna, nalezeno 50 muxů, skenování neúspěšné
Playlist

Kód:
#EXTM3U
#EXTINF:-1,ČT1 HD
pipe:///storage/.kodi/media/playlist/kuki/streamer.sh ct1hd
#EXTINF:-1,ČT2 HD
pipe:///storage/.kodi/media/playlist/kuki/streamer.sh ct2hd
#EXTINF:-1,ČT24 HD
pipe:///storage/.kodi/media/playlist/kuki/streamer.sh ct24
#EXTINF:-1,ČT Sport HD
pipe:///storage/.kodi/media/playlist/kuki/streamer.sh ctsporthd
#EXTINF:-1,ČT :D HD
pipe:///storage/.kodi/media/playlist/kuki/streamer.sh ctdart
#EXTINF:-1,ČT Art HD
pipe:///storage/.kodi/media/playlist/kuki/streamer.sh ctdart

streamer.sh
Kód:
#!/bin/sh
channel=$1
deviceid=5
prog=/storage/.kodi/addons/tools.ffmpeg-tools/bin
data=/storage/.kodi/media/playlist/kuki
#deviceid=$(cat ${data}/device.id | head -n 1)
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
1. Je ten formát playlistu vygenerovaný správně? Předpokládám, že tady problém není, protože muxy se načtou.
2. Je ten streamer.sh správně?
3. deviceid mám vyplněné celé, playlist i streamer.sh jsou umístěné v /storage/.kodi/media/playlist/kuki; tools.ffmpeg-tools je taky na správném místě; script je spustitelný; TVHeadnend 4.2 běží na tom stejném Raspberry, kde je LE 9.0 s Kodi 18.1
4. Předpokládám buď problém v tom, že se skript nespustí anebo v mé neznalosti TVHeadendu a neschopnosti ho správně nastavit.
Děkuji za pomoc.
OdroidN2, AndroidTV by Galv0nized, Kodi 19.0, Artic Zephyr
 
Citovat
#55
@viki808: to jsme na tom asi stejne. Co ti to píše, když spustíš ten streamer.sh? Nebo úplně dole v TVH je log(sipka vpravo dole) a je tam vidět co se děje.
 
Citovat
#56
Malá ukázka níže.
Kód:
2019-03-26 14:31:24.986 mpegts: playlist.generic.m3u8 - Sport 5 in iptv - tuning on IPTV
2019-03-26 14:31:24.993 spawn: Executing "/storage/.kodi/media/playlist/kuki/streamer.sh"
2019-03-26 14:31:24.994 subscription: 0441: "scan" subscribing to mux "playlist.generic.m3u8 - Sport 5", weight: 6, adapter: "IPTV", network: "iptv", service: "Raw PID Subscription"
2019-03-26 14:31:25.545 spawn: /storage/.kodi/media/playlist/kuki/streamer.sh: line 8: jq: not found
2019-03-26 14:31:25.793 spawn: wget: server returned error: HTTP/1.1 403 FORBIDDEN
2019-03-26 14:31:25.796 spawn: /storage/.kodi/media/playlist/kuki/streamer.sh: line 10: jq: not found
2019-03-26 14:31:25.799 spawn: /storage/.kodi/media/playlist/kuki/streamer.sh: line 11: jq: not found
2019-03-26 14:31:39.986 mpegts: playlist.generic.m3u8 - Sport 5 in iptv - scan no data, failed
2019-03-26 14:31:39.986 subscription: 0441: "scan" unsubscribing
OdroidN2, AndroidTV by Galv0nized, Kodi 19.0, Artic Zephyr
 
Citovat
#57
@viki808: tak to jsme na tom úplně stejně
Kód:
2019-03-26 12:52:18.381 spawn: wget: server returned error: HTTP/1.1 403 FORBIDDEN
2019-03-26 12:52:18.386 spawn: /storage/.kodi/media/playlist/kuki/streamer.sh: line 9: jq: not found
2019-03-26 12:52:18.390 spawn: /storage/.kodi/media/playlist/kuki/streamer.sh: line 10: jq: not found
2019-03-26 12:52:18.392 spawn: /storage/.kodi/media/playlist/kuki/streamer.sh: line 13: /ffmpeg: not found
2019-03-26 12:52:18.401 spawn: Executing "/storage/.kodi/media/playlist/kuki/streamer.sh"
 
Citovat
#58
@vrzy: U mě posun, nainstaloval jsem add-on System tools, kde je jq a už ladím. Zatím mám 31 z 50 služeb. Ta správná otázka teď je "co s tím"? Moje znalosti TVHendu jsou mizerné. Teď by to asi chtělo klienta, který se na ten server připojí, a spustí ty streamy. Pokud někdo odkáže co dál, budu vděčný.
OdroidN2, AndroidTV by Galv0nized, Kodi 19.0, Artic Zephyr
 
Citovat
#59
@viki808: tak to už jsem instaloval včera, ale i tak to nejede. Až budu u pc mrknu na to víc.
Co se týče klienta, tak záleží kde a na čem chceš koukat. Já většinou používám všude kodi a občas to pustím ve VLC na pc. V mobilu mám tvhclient.
 
Citovat
#60
@vrzy: jel jsem podle tohoto návodu (https://www.xbmc-kodi.cz/prispevek-zakla...-ts-stream) a asi to jede, protože teď mi VLC přehrálo Barrandov TV. Já mám taky na Raspberry Kodi 18.1 (LE 9.0.1). Jaký klient je vhodný pro Kodi? Musí to být nějaký speciální PVR addon?
OdroidN2, AndroidTV by Galv0nized, Kodi 19.0, Artic Zephyr
 
Citovat
  


Přejít na fórum:


Prochází: 1 host(ů)