XBMC-Kodi.cz

Úplná verze: OTT/IPTV - jednodušeji to už nejde
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 9 10 11 12
: Tak to se přiznám už přesně nevím - tuším, že se jednalo o reverse-engineering odsud: https://www.xn--lep-tma39c.tv/novinky/ap...o-windows/
Předělal jsem ten script na přihlášení, vše ostatní by mělo zůstat stejné
Kód:
 
#!/bin/sh
dir=$(dirname $0)
pwd=$(pwd)
cd ${dir}
data=$(pwd)

user=${LEPSITV_USERNAME}
pass=${LEPSITV_PASSWORD}

cookies=$(wget --no-check-certificate \
-q -O - \ 
--method POST \ 
--save-cookies cookies.txt \ 
--timeout=0 \ 
--header 'Accept: application/json, text/javascript, */*; q=0.01' \ 
--header 'X-Requested-With: XMLHttpRequest' \ 
--header 'Accept-Language: cs-cz' \ 
--header 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' \ 
--header 'Cookie: lang_default=cs; onlinetv_href=https%3A%2F%2Fwww.xn--lep-tma39c.tv%2Fonlinetv%2F%3Fzarizeni%3Dios%26home_new%3D0%26login; onlinetv_href_device=ios; onlinetv_href_device_url=ios; sluzba=;' \ 
--body-data "page=login&action=login&user_name=${user}&user_password=${pass}" \ 
'https://www.xn--lep-tma39c.tv/web/ajax.php') 

key=$(cat ${data}/cookies.txt | awk -F '\t' '{if ($6=="key"){print $7}}')
echo ${key} > ${data}/login.id 
Tak pro sledovanitv mame novy parametr pro titulky. Ty jsou primo v m3u8 souboru, no kodi si s tim zrejme neporadi.
Kód:
http://sledovanitv.cz/vlc/api-channel/ct1.m3u8?quality=40&capabilities=webvtt%2Cadaptive2%2Ch265&subtitles=1&PHPSESSID=xxxxxxx
Edit:
Tak az Kodi 19.x tyhle titulky umi
Nějaké další info nemáš? Co ten parametr děla s PS (programm steram), který server služby začne posílat. Nechá v něm pouze vybrané titulky a ostatní zahodí? Nebo přeskládá jejich pořadí, aby ty vybrané byly uvedeny jako první? I když mě zajímá jen příjem v Tvheadend (kde si výběr titulků v ffmpeg nějak udělat dokáži už teď - i když je pravda, že to právě u Sledovani.tv nedělám), zaujala mě ta tvá poznámka o Matrix-u. V čem má Matrix zpracování titulků jinak? Co je tam v tomto hledu za novou funkci? Zatím jsem na nic nenarazil. Tedy hlavně proto, že jsme ani netušil, že bych něco takového měl hledat, takže mi možná něco uniklo. Dík za info, budeš-li mít.
Je tam primo v m3u8 tag subtitles:
Kód:
#EXTM3U
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs1",NAME="České",URI="https://sit-cdn4-pub.mtv.cdn.moderntv.eu/moderntv/stream/ct1/sub-cze-hls/live-media.m3u8?_cdn_attrs=account...
V matrixu mi to jde zapnutim v simple clientovi volbu hls pres ffmpeg. Na Leia to jde kdyz je stream pres InputStream Adaptive.
Jasně, chápu. Dík.
jinak nevim nenasel jsem tady zminku ohledne prijmu UHD .. aktualne je skutecne v UHD NASA a Extasy 4K ..

Kód:
http://sledovanitv.cz/vlc/api-channel/"$1".m3u8?quality=120&capabilities=h265,adaptive&PHPSESSID="${session}
quality=120 je něco nového? dosud jsme používali 40
Me to teda nefunguje. Asi to je taky podle toho, jake zarizeni se identifikuje.
Uhd mi funguje od quality 80 ale funguje i 120.. NASA jede na 60fps a extasy na 25 dle vlc

: Dle jejich stránek UHD funguje na všech TV jejich StB a Appletv .. všechny moje tokeny jsou registrované na tyto zařízení..
Aha. Tak tyhle zarizeni nemam povoleny
Můžete udělat screen bitrare ze Sledovánítv,cz tv stanice Extasy4k ?
Tady dávám ukázku bitrare z Antik satu. Jen pro zajímavost.

http://prntscr.com/wg3mdf
a v api ma byt jake dev type pro ten stb a appletv? Zkousel jsem samsungtv a androidsmarttv a na obou mam povoleno max 20.
: samsungtv, appletv, lgtv .. jinak jsem ted projel jejich balicky a to UHD dle vseho funguje jen na Premium balicku cili ten nejdrazsi

: jinak bitrate lita nahoru dolu cca 5000-9000 .. u NASA UHD jsem videl i 12000 https://prnt.sc/wg6a68

edit: tak jsem provedl jeste test co to udela pokud nastavim quality u hevc na 120 misto 40 .. ted se u FHD programu drzi bitrate u cca 7Mbit na quality 40 bitrate cca 3,5
: mám zalogováno jako XBMC tak i appletv a já nevidím rozdíl ... Nasa UHD 60fps a extasy 4k 25fps... jak na 40 tak na 120
djlucas: díky za info
iVysílání ČT
PHP skript (index.php):
Kód:
<?php
#params
$channel_input = explode(".m3u8", $_GET["ch"]);
$channel_input = $channel_input[0];

#token
$ch = curl_init('https://www.ceskatelevize.cz/services/ivysilani/xml/token/');
$post = ['user' => 'iDevicesMotion'];
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded', 'User-Agent: iVysilani/Android', 'Host: www.ceskatelevize.cz'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
$token = strval(simplexml_load_string($result)[0]);

#keyurl
$ch = curl_init('https://www.ceskatelevize.cz/services/ivysilani/xml/playlisturl/');
$post = ['quality' => 'web', 'playerType' => 'iPad', 'token' => $token, 'ID' => 'CT'.$channel_input, 'playlistType' => 'json'];
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('User-Agent: okhttp/2.7.0', 'Host: www.ceskatelevize.cz', 'Connection: Keep-Alive', 'Accept-Ecoding: gzip', 'Content-type: application/x-www-form-urlencoded'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
$keyurl = strval(simplexml_load_string($result)[0]);

#stream
$ch = curl_init($keyurl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('User-Agent: okhttp/2.7.0', 'Host: www.ceskatelevize.cz', 'Connection: Keep-Alive', 'Accept-Ecoding: gzip', 'Content-type: application/x-www-form-urlencoded'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
header('Content-Type: text/plain; charset=utf-8');
$data = json_decode($result,true);
$url = strval($data['playlist'][0]['streamUrls']['main']);
header('Location: '.$url.'');
?>
.htaccess:
Kód:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /CT/index.php?ch=$1 [L,QSA]

Oba soubory do složky "CT" a url streamu pak bude:
Kód:
http://tvujweb.cz/CT/28
Nebo s koncovkou:
Kód:
http://tvujweb.cz/CT/28.m3u8
Nebo bez použití htaccess:
Kód:
http://tvujweb.cz/CT/index.php?ch=28
Kanály o kterých vím: 25, 26, 27, 28, 29, 30, 31, 32
Rebit.tv PHP skript (nové api)

1) skript auth.php - registrace zařízení
- zadejte přihlašovací údaje (login/email a heslo)
- spusťte skript, ten uloží do souboru id zařízení a token

2) skript channels.php
- vypíše a uloží do souboru seznam kanálů a jejich id (dle vašeho předplatného)

3) skript play.php
url streamu:
Kód:
http://vas.webhosting/rbt/play.php?ch=1
- kdy "ch" je číslo (id) kanálu podle pořadí v mobilní aplikaci (1 = Jednotka, 4 = Markíza, atd.)
- pokud použijete htaccess, tak url streamu je
Kód:
http://vas.webhosting/rbt/1
nebo
Kód:
http://vas.webhosting/rbt/1.m3u8
(08.12.2020, 11:29)tomashapl Napsal(a): [ -> ]Předělal jsem ten script na přihlášení, vše ostatní by mělo zůstat stejné
Kód:
 
#!/bin/sh
dir=$(dirname $0)
pwd=$(pwd)
cd ${dir}
data=$(pwd)

user=${LEPSITV_USERNAME}
pass=${LEPSITV_PASSWORD}

cookies=$(wget --no-check-certificate \
-q -O - \ 
--method POST \ 
--save-cookies cookies.txt \ 
--timeout=0 \ 
--header 'Accept: application/json, text/javascript, */*; q=0.01' \ 
--header 'X-Requested-With: XMLHttpRequest' \ 
--header 'Accept-Language: cs-cz' \ 
--header 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' \ 
--header 'Cookie: lang_default=cs; onlinetv_href=https%3A%2F%2Fwww.xn--lep-tma39c.tv%2Fonlinetv%2F%3Fzarizeni%3Dios%26home_new%3D0%26login; onlinetv_href_device=ios; onlinetv_href_device_url=ios; sluzba=;' \ 
--body-data "page=login&action=login&user_name=${user}&user_password=${pass}" \ 
'https://www.xn--lep-tma39c.tv/web/ajax.php') 

key=$(cat ${data}/cookies.txt | awk -F '\t' '{if ($6=="key"){print $7}}')
echo ${key} > ${data}/login.id 

@ tomashapl
Ahoj
Lze to spustit na dekodéru E2?
(17.3.2020, 10:23)Saros Napsal(a): [ -> ]Jj zapomnel jsem tam dat ten $subscription_code. Ja jsem si ten skript rozdelil na dve casti. Prvni je token a configurarion kdy se mi do souboru ulozi token a subscription_code. Spoustim jen streaming, kdy se mi data nactou ze souboru. Ted jen zjistuju jak dlouho vydrzi ten token a podle toho si pak upravim obnoveni. Taky jsem si tam dal pole abych nemusel do parametru davat cely nazev.
Token:
Kód:
<?php
#login
$username = "email";
$password = "heslo";

# token
$data = array('grant_type' => 'password', 'client_id' => 'tef-web-portal-etnetera','client_secret' => '2b16ac9984cd60dd0154f779ef200679','username' => ''.$username.'','password' => ''.$password.'', 'platform_id' => '231a7d6678d00c65f6f3b2aaa699a0d0', 'language' => 'cs');
$ch = curl_init('https://oauth.o2tv.cz/oauth/token');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: oauth.o2tv.cz', 'User-Agent: okhttp/3.12.2', 'Accept-Encoding: gzip', 'Connection: Keep-Alive', 'Content-Type: application/x-www-form-urlencoded'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$j = json_decode($result,true);
$token = $j["access_token"];
echo $token;
curl_close($ch);

# configuration
$ch = curl_init('https://app.o2tv.cz/sws/subscription/settings/subscription-configuration.json');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-NanguTv-Device-Id: 172c533453e1b16e', 'X-NanguTv-Device-Name: Nexus 7', 'X-NanguTv-App-Version: Android#6.8.1', 'Host: oauth.o2tv.cz', 'User-Agent: okhttp/3.12.2', 'Accept-Encoding: gzip', 'Connection: Keep-Alive', 'Content-Type: application/x-www-form-urlencoded', 'X-NanguTv-Access-Token: '.$token.''));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$j = json_decode($result,true);
$subscription_code = $j["subscription"];
echo '</br>'.$subscription_code;
curl_close($ch);

#save data
$file = fopen("./o2tv_data.txt", "w");
fwrite($file, $token."\n".$subscription_code);
fclose($file);
?>
Streaming:
Kód:
<?php
#params
$channel_input = explode(".m3u8", $_GET["ch"]);
$channel_input = $channel_input[0];
$array = array('1' => 'O2 Sport HD', '2' => 'O2 Fotbal HD', '3' => 'O2 Tenis HD');
$arr = $array[$channel_input];
$channel = rawurlencode($arr);
$type = "STB";
$resolution = "HD";

#read data
$lines = file("o2tv_data.txt", FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES);
$data = array_chunk($lines, 3);
$token = $data[0][0];
$subscription_code = $data[0][1];

#streaming
$uris = 'https://app.o2tv.cz/sws/server/streaming/uris.json?serviceType=LIVE_TV&deviceType='.$type.'&streamingProtocol=HLS&subscriptionCode='.$subscription_code.'&channelKey='.$channel.'&encryptionType=NONE';
$ch = curl_init($uris);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-NanguTv-Device-Id: 172c533453e1b16e', 'X-NanguTv-Device-Name: Nexus 7', 'X-NanguTv-App-Version: Android#6.8.1', 'Host: oauth.o2tv.cz', 'User-Agent: okhttp/3.12.2', 'Accept-Encoding: gzip', 'Connection: Keep-Alive', 'Content-Type: application/x-www-form-urlencoded', 'X-NanguTv-Access-Token: '.$token.''));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$j = json_decode($result,true);
$j = $j['uris'];
foreach($j as $v){
$q = $v['resolution'];
if ($q == $resolution) {
$url = $v['uri'];
}
}
header('Location: '.$url.'');
?>

Pak to mam takto: url/o2tv/o2tv.php?ch=1.m3u8
Pokud se pouzije htaccess tak jen url/o2tv/1.m3u8

Zdravím, mám problém script mi negeneruje token a vypíše chybu Warning: curl_setopt() expects parameter 1 to be resource, null given in /www/o2.php on line 9

Nějaká rada ? Děkuji
Stran: 1 2 3 4 5 6 7 8 9 10 11 12