<?php
//в денвере затупы при обращении на прямую к массиву в сложных выражениях...
function of($arr, $in) { return $arr[$in]; }
//наш id...
$id=172932;
//ключи...
$key = Array(0, 2, 293);
//куки, подозреваю, что не обязательно каждый раз новые...
//но может не прав, тогда их надо как-то получить...
$cookie = 'Cookie: PHPSESSID=qjpptmov0cnbvgtf6q6hucbl94; key=e450ac620aedb4aa651287cdf2ef94c3e422f2dd;';
echo $cookie.'<br>';
//ссылка на наш плеер...
$post = 'file='.$id.'&source=1&user=false';
$url = 'http://player.tree.tv/?'.$post;
$options = array('http'=>array('method'=>"POST", 'header'=>"Accept-language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n" .
"User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) Chrome/43.0.2357.124 Safari/537.36\r\n" .$cookie."\r\n".
"Origin: http://tree.tv\r\n"."Referer: ".$url."\r\n"."X-Requested-With: XMLHttpRequest\r\n", 'content'=> $url.'?'.$post));
$context = stream_context_create($options);
//получили первый раз наши g, p, s_key в тексте...
$data = file_get_contents('http://player.tree.tv/guard/?'.$post, false, $context);
//парсим их с текста...
$data = of(explode('}',of(explode('{',$data),1)),0).'<br>';
$g=of(explode(',',of(explode(':',$data),1)),0);
$p=of(explode(',',of(explode(':',$data),2)),0);
$s_key=of(explode(':',$data),3);
//присваиваем ключу...
$key[1]=$g; $key[2]=$p;
//высчитываем clientKey...
$key[0] = rand(0,7); $numClient = pow($key[1], $key[0]); $clientKey = $numClient % $key[2];
$post = 'key='.$clientKey;
//второй раз обращаемся... зачем два раза не совсем понял, но в подкасте так было...
$data = file_get_contents('http://player.tree.tv/guard/?'.$post, false, $context);
//опять парсим значения...
$data = of(explode('}',of(explode('{',$data),1)),0).'<br>';
$g=of(explode(',',of(explode(':',$data),1)),0);
$p=of(explode(',',of(explode(':',$data),2)),0);
$s_key=of(explode(':',$data),3);
//ключам присваиваем...
$key[1]=$g; $key[2]=$p;
echo 'g='.$g.', p='.$p.', s_key='.$s_key;
//считаем b...
$b = pow($s_key, $key[0]);
//считаем skc...
$skc = round($b-(floor($b/$p)*$p));
echo 'skc='.$skc.'<br>';
//формируем запрос на плейлист...
$post2 = 'file='.$id.'&source=1&skc='.$skc;
$url2 = 'http://player.tree.tv/guard/guard/?'.$post2;
$options = array('http'=>array('method'=>"POST", 'header'=>"Accept-language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n" .
"User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) Chrome/43.0.2357.124 Safari/537.36\r\n" .$cookie."\r\n".
"Origin: http://player.tree.tv\r\n"."Referer: ".$url."\r\n"."X-Requested-With: XMLHttpRequest\r\n", 'content'=> $url2));
$context = stream_context_create($options);
реклама, надо или не надо, хз...
//file_get_contents('http://api.tree.tv/getreklama?_='.date('c'), false, $context);
//наш запрос, на выходе ничего нет....
$data = file_get_contents($url2, false, $context);
//видим, что результата ноль... :-(
echo $data;
?>