• 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
Mas ve stejne slozce soubor "o2tv_data.txt" a v nem neco?
 
Citovat
Jasně, všechno ve složce www, soubor .txt to vytvoří ale token v něm není
 
Citovat
Tak mas spatny prihlasovaci udaje
 
Citovat
Ty mám na 100% dobře, ale nejspíš bude chyba v tom že když se přihlásím do o2tv přes prohlížeč tak musím vybrat účet přes který chci TV sledovat, protože mám na jednom účtu více předplacených TV celkem 5. Tak teď nevím jak udělat úpravu v PHP aby se to připojilo pod konkrétní předplatné.
 
Citovat
Nevim, ale neco mas spatne. Ten token to ulozi i bez předplatného
 
Citovat
Klidně ti dám přístup do FTP ke složce a k údajům o2 a sám uvidíš že přihlašovací údaje jsou v pořádku

Script když ho zavolám mi stále vypisuje chybu na řádku 9 což je toto:
$ch = curl_init('https://oauth.o2tv.cz/oauth/token');
 
Citovat
@koks13

cau script je plne funkcni.. zkus nasledujici.. pres ssh
PHP kód:
apt install curl 

a
PHP kód:
 
apt install php
-curl 

a nasledne
PHP kód:
service apache2 restart 
VPS TVH, Webgrab... Server > Odroid-N2 Coreelec (Tvheadend client)
 
Citovat
Tak to bych klidně udělal ale jedu na webhostingu od wedosu
Chybu mi to ukazuje na tento řádek: curl_setopt($curl, CURLOPT_POST, true);
 
Citovat
ma niekto srcipt aj pre OrangeTV?
 
Citovat
Ahojte kodaci Upravil som trošku jeden script od sledovani tv bol tu kod na archiv ale stim ze bol zadaný kanal datum a cas script funguje cez php naskoči aktuálne vysielanie ked skočite vo vlc alebo kodi dozadu pretoci to rovno zo servera sledovani tv ma niekto zaujem?
 
Citovat
(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
Da sa tento script prerobit na OrangeTV ? alebo nema niekto script pre Orange ?

dikes za odpoved
 
Citovat
(01.9.2018, 6:25)otava5 Napsal(a): JiRo: dnes jsem nahodil nový streamy a žádný obraz u jedné z Prim log TVH hlási:
tsfix: The timediff for AAC-LATM is big (729982), using current dts

Po vypnutí zapnutí streamu to zatím chodí....

Ahoj, mám taky tady s tím problém ( dělá mi to aktuálně u sledovani. Dá se to nějak vyřešit editací nějakého souboru v TVH ? Zde jsem našel že by změna času měla pomoci https://tvheadend.org/projects/tvheadend...3dc80/diff

soubor "src/plumbing/tsfix.c " se mi nepodařilo přes winscp najít
4x Raspberry Pi 4B LE 9.2.8 Kodi v18.9 Leila + 1x Pi4 TVheadend server v19.3
 
Citovat
(28.10.2021, 10:49)shumi21 Napsal(a):
(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
Funguje jeste to php na generovani tokenu? Dekuji Sarosi
 
Citovat
Vyzkoušej a uvidíš, já už nemám na o2 účet.
 
Citovat
@Bajtik Platnost tokenu ti služba vrátí jako odpověď na refresh request. Takže ideální řešení je si po refresh tu platnost uložit a před každým request o stream ji otestovat a pokud je to po platnosti, tak ještě před request o stream provést refresh.

A hned následoval dotaz přes SZ, co a jak uložit. Tedy stručně, po request refresh O2TV služba posílá hodnotu expires_in (tzn. délku platnosti v sec), takže doporučení je si spočítat expires_at (tzn. připočíst aktuální čas v sec), ten uložit a při dalším spuštění při testu kontrolovat, zda je aktuální čas větší jak ten uložený a pokud ano, tak dát request refresh.
 
Citovat
Jasan me to hlasi toto

root@Ubuntu-2004-focal-amd64-base /var/www/html/o2tv # php token.php
PHP Notice: Undefined variable: curl in /var/www/html/o2tv/token.php on line 9
PHP Stack trace:
PHP 1. {main}() /var/www/html/o2tv/token.php:0
PHP Warning: curl_setopt() expects parameter 1 to be resource, null given in /v ar/www/html/o2tv/token.php on line 9
PHP Stack trace:
PHP 1. {main}() /var/www/html/o2tv/token.php:0
PHP 2. curl_setopt() /var/www/html/o2tv/token.php:9
PHP Notice: Undefined index: access_token in /var/www/html/o2tv/token.php on li ne 15
PHP Stack trace:
PHP 1. {main}() /var/www/html/o2tv/token.php:0
PHP Notice: Undefined index: subscription in /var/www/html/o2tv/token.php on li ne 25
PHP Stack trace:
PHP 1. {main}() /var/www/html/o2tv/token.php:0
 
Citovat
Jde v m3u playlistu nadefinovat, aby zvuk streamu byl rychlejší o +0.350s?
 
Citovat
@otava5 No, pokud budou v playlistu přímo adresy streamů, tak asi ne. Tvheadend umí streamy filtrovat, že by je ale uměl posouvat jeden proti druhému, tak o tom nic nevím, ale řekl bych, že ne.

Jiné to bude, pokud budeš streamy "prohánět" například přes ffmpeg. Tam by to, teoreticky, jít mohlo, a to s pomocí parametru itsoffset.

Pokud bys pracoval se soubory, vypadalo by to nějak takto. Načteš stream a zpozdíš ho, pak si ho načteš znova a nakonec z jednoho vezmeš audio a z druhého video:
Kód:
ffmpeg -i <originalni_soubor> -itsoffset 0.35 -i <originalni_soubor> -map 1:v -map 0:a -c copy <soubor_s_posunutým_zvukem>
Ale u live streamů to asi bude problém. Při použití této metody bys ty streamy musel načítat 2x. 10 A to asi u live streamů z OTT nepůjde. No, zkus si s tím pohrát, ale moc bych nevěřil, že to bude fungovat.
 
Citovat
  


Přejít na fórum:


Prochází: 1 host(ů)