18.8.2021, 18:51
18.8.2021, 19:01
Jasně, všechno ve složce www, soubor .txt to vytvoří ale token v něm není
18.8.2021, 20:22
Tak mas spatny prihlasovaci udaje
18.8.2021, 20:25
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é.
18.8.2021, 20:40
Nevim, ale neco mas spatne. Ten token to ulozi i bez předplatného
18.8.2021, 20:58
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');
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');
18.8.2021, 21:08
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
18.8.2021, 21:12
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);
Chybu mi to ukazuje na tento řádek: curl_setopt($curl, CURLOPT_POST, true);
14.10.2021, 20:00
ma niekto srcipt aj pre OrangeTV?
22.10.2021, 0:02
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?
28.10.2021, 10:49
(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.Da sa tento script prerobit na OrangeTV ? alebo nema niekto script pre Orange ?
Token:
Streaming: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);
?>
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
dikes za odpoved
30.1.2022, 13:57
(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
28.8.2022, 20:59
(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.Funguje jeste to php na generovani tokenu? Dekuji Sarosi
Token:
Streaming: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);
?>
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
29.8.2022, 7:24
Vyzkoušej a uvidíš, já už nemám na o2 účet.
29.8.2022, 7:48
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.
04.9.2022, 20:39
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
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
08.10.2022, 0:25
Jde v m3u playlistu nadefinovat, aby zvuk streamu byl rychlejší o +0.350s?
08.10.2022, 10:54
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>