function downloadcode($url, $pretendname = 'download') { // Function to generate download code $downloadpage = currentpageurl(); $uniquecode = generatecode(); $client_ip = getip(); $query_urlchk = "SELECT * FROM ddown WHERE actuallink = '{$url}' LIMIT 1"; $result_urlchk = @mysql_query($query_urlchk); //writedberror($result_urlchk); if (mysql_num_rows($result_urlchk) == 0) { addnewurltodb($url, $pretendname, $downloadpage); $file_id = getfileid($url); addnewcodedb($file_id, $client_ip, $uniquecode); } else { if (mysql_num_rows($result_urlchk) == 1) { $file_id = mysql_result($result_urlchk, 0, 'id'); $file_name = mysql_result($result_urlchk, 0, 'pretendname'); $pageurl = mysql_result($result_urlchk, 0, 'whoreferred'); if ($file_name != trim($pretendname)) { changefakenamedb($pretendname, $file_id); } if ($pageurl != trim($downloadpage)) { $downloadpagestr = $pageurl . ',' . $downloadpage; addtowhoreferreddb($downloadpagestr, $file_id); } changecodedb($uniquecode, $client_ip, $file_id); } } return $uniquecode; }
function fetch_youku_flv($url) { preg_match("#id_(.*?)\\.html#", $url, $out); $id = $out[1]; $content = get_curl_contents('http://v.youku.com/player/getPlayList/VideoIDS/' . $id); $data = json_decode($content); foreach ($data->data[0]->streamfileids as $k => $v) { $sid = getSid(); $fileid = getfileid($v, $data->data[0]->seed); $one = $data->data[0]->segs->{$k}; if ($k == 'flv' || $k == 'mp4') { return "http://f.youku.com/player/getFlvPath/sid/{$sid}_00/st/{$k}/fileid/{$fileid}?K={$one[0]->k}"; } continue; } }
function getvideo($id) { $content = get_curl_contents('http://v.youku.com/player/getPlaylist/VideoIDS/' . $id); $data = json_decode($content); $fileid_ = $data->data[0]->streamfileids; $fileid2_ = $fileid_->hd2; $sk = 'hd2'; if (!$fileid2_) { $fileid2_ = $fileid_->mp4; $sk = 'mp4'; } if (!$fileid2_) { $fileid2_ = $fileid_->flv; $sk = 'flv'; } $sid = getSid(); $fileid3_ = getfileid($fileid2_, $data->data[0]->seed); $filed1_ = substr($fileid3_, 0, 8); $filed2_ = substr($fileid3_, 10); $segs = $data->data['0']->segs->{$sk}; $i = 0; $urllist = ''; foreach ($segs as $seg1 => $v1) { $AA = strtoupper(dechex($i)) . ''; if (strlen($AA) < 2) { $AA = '0' . $AA; } $filed_ = $filed1_ . $AA . $filed2_; $k1 = $v1->k; $k2 = $v1->k2; $size = $v1->size; $seconds = $v1->seconds; $sk = str_replace('hd2', 'flv', $sk); $urllist[$seg1]['url'] = 'k.youku.com/player/getFlvPath/sid/_00/st/' . $sk . '/fileid/' . $filed_ . '?K=' . $k1 . ',k2=' . $k2; $urllist[$seg1]['size'] = $size; $urllist[$seg1]['sec'] = $seconds; $i += 1; } return $urllist; }
function getYoukuFlv($url) { //preg_match("#id_(.*?)\.html#",$url,$out); //$id=$out[1]; $url2 = str_replace('_wd1', '', $url); //echo $url2; $content = get_curl_contents('http://v.youku.com/player/getPlayList/VideoIDS/' . $url2); $data = json_decode($content); $fileid_ = $data->data[0]->streamfileids; $fileid2_ = $fileid_->mp4; $sk = 'mp4'; if (!$fileid2_) { $fileid2_ = $fileid_->flv; $sk = 'flv'; } $sid = getSid(); $fileid3_ = getfileid($fileid2_, $data->data[0]->seed); $filed1_ = substr($fileid3_, 0, 8); $filed2_ = substr($fileid3_, 10); //print_r($filed2_); $segs = $data->data[0]->segs->{$sk}; $i = 0; //echo dechex(5); foreach ($segs as $seg1 => $v1) { $AA = strtoupper(dechex($i)); if (count($AA) < 2) { $AA = '0' . $AA; } $i += 1; $filed_ = $filed1_ . $AA . $filed2_; $k1 = $v1->k; $k2 = $v1->k2; if ($i > 1) { $urllist .= '|'; } $urllist .= 'http://f.youku.com/player/getFlvPath/sid/00_00/st/' . $sk . '/fileid/' . $filed_ . '?K=' . $k1 . ',k2=' . $k2; } return $urllist; }
function getYouku($url) { if (strpos($url, 'html')) { $url2 = inter($url, 'id_', '.html'); } elseif (strpos($url, 'swf')) { $url2 = inter($url, '/sid/', '/'); } else { $url2 = str_replace('_wd1', '', $url); } $content = get_curl_contents('http://v.youku.com/player/getPlayList/VideoIDS/' . $url2); $data = json_decode($content); $fileid_ = $data->data[0]->streamfileids; $fileid2_ = $fileid_->mp4; $sk = 'mp4'; if (!$fileid2_) { $fileid2_ = $fileid_->flv; $sk = 'flv'; } $sid = getSid(); $fileid3_ = getfileid($fileid2_, $data->data[0]->seed); $filed1_ = substr($fileid3_, 0, 8); $filed2_ = substr($fileid3_, 10); $segs = $data->data[0]->segs->{$sk}; $i = 0; $urllist = ''; foreach ($segs as $seg1 => $v1) { $AA = strtoupper(dechex($i)) . ''; if (strlen($AA) < 2) { $AA = '0' . $AA; } $filed_ = $filed1_ . $AA . $filed2_; $k1 = $v1->k; $k2 = $v1->k2; $size = $v1->size; $seconds = $v1->seconds; $urllist .= ' <video>' . chr(13); $urllist .= ' <file>http://f.youku.com/player/getFlvPath/sid/00_00/st/' . $sk . '/fileid/' . $filed_ . '?K=' . $k1 . ',k2=' . $k2 . '</file>' . chr(13); $urllist .= ' <size>' . $size . '</size>' . chr(13); $urllist .= ' <seconds>' . $seconds . '</seconds>' . chr(13); $urllist .= ' </video>' . chr(13); $i += 1; } $urllist2 = '<?xml version="1.0" encoding="utf-8"?>' . chr(13); $urllist2 .= ' <ckplayer>' . chr(13); $urllist2 .= ' <flashvars>' . chr(13); $urllist2 .= ' {h->2}' . chr(13); $urllist2 .= ' </flashvars>' . chr(13); $urllist2 .= $urllist; $urllist2 .= ' </ckplayer>'; echo $urllist2; }
$realId = ""; for ($i = 0; $i < count($ids); ++$i) { $idx = $ids[$i]; $realId .= substr($mixed, $idx, 1); } return $realId; } function ran($_seed) { $_seed = ($_seed * 211 + 30031) % 65536; return $_seed / 65536; } function getMixString($seed) { $mixed = ""; $source = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/\\:._-1234567890"; $len = strlen($source); for ($i = 0; $i < $len; ++$i) { $seed = ($seed * 211 + 30031) % 65536; $index = $seed / 65536 * strlen($source); $c = substr($source, $index, 1); $mixed .= $c; $source = str_replace($c, "", $source); } return $mixed; } print_r($res); echo $real_fileid = getfileid($res['data']['fileid'], $_seed); $len = $res['data']['len']; // $_II = $res['data']['len']<2? echo PHP_EOL, $v_list = "http://f.youku.com/player/getFlvPath/sid/00_00/st/" . $res['data']['format'] . "/fileid/" . $real_fileid . "?K=" . $res['data']['key'];
function getvideo($id, $pid = 2) { $hz = '_youku'; $pidarrs[] = 'flv'; $pidarrs[] = 'mp4'; $pidarrs[] = 'hd2'; $pidarrs[] = 'hd3'; $content = get_curl_contents('http://v.youku.com/player/getPlayList/VideoIDS/' . $id); $data = json_decode($content); $fileid_ = $data->data[0]->streamfileids; $fileid2_ = $fileid_->hd3; $pido = '4'; if (!$fileid2_) { $fileid2_ = $fileid_->hd2; $pido = '3'; } if (!$fileid2_) { $fileid2_ = $fileid_->mp4; $pido = '2'; } if (!$fileid2_) { $fileid2_ = $fileid_->flv; $pido = '1'; } switch ($pido) { case '1': $qvars = __BQ__ . '_' . $id . $hz; break; case '2': $qvars = __BQ__ . '_' . $id . $hz . '|' . __GQ__ . '_' . $id . $hz; break; case '3': $qvars = __BQ__ . '_' . $id . $hz . '|' . __GQ__ . '_' . $id . $hz . '|' . __CQ__ . '_' . $id . $hz; break; case '4': $qvars = __BQ__ . '_' . $id . $hz . '|' . __GQ__ . '_' . $id . $hz . '|' . __CQ__ . '_' . $id . $hz . '|' . __YH__ . '_' . $id . $hz; break; default: $qvars = $id . $hz; break; } $pid = min($pid, $pido); $sk = $pidarrs[$pid - 1]; $fileid2_ = $fileid_->{$sk}; $sid = getSid(); $fileid3_ = getfileid($fileid2_, $data->data[0]->seed); $filed1_ = substr($fileid3_, 0, 8); $filed2_ = substr($fileid3_, 10); $segs = $data->data['0']->segs->{$sk}; $i = 0; $urllist = ''; foreach ($segs as $seg1 => $v1) { $AA = strtoupper(dechex($i)) . ''; if (strlen($AA) < 2) { $AA = '0' . $AA; } $filed_ = $filed1_ . $AA . $filed2_; $k1 = $v1->k; $k2 = $v1->k2; $size = $v1->size; $seconds = $v1->seconds; $sk = str_replace('hd2', 'flv', $sk); $sk = str_replace('hd3', 'flv', $sk); $urllist['urls'][$seg1]['url'] = 'http://f.youku.com/player/getFlvPath/sid/00_00/st/' . $sk . '/fileid/' . $filed_ . '?K=' . $k1 . ',k2=' . $k2; $urllist['urls'][$seg1]['size'] = $size; $urllist['urls'][$seg1]['sec'] = $seconds; $i += 1; } $urllist['vars'] = '{h->2}{a->' . $qvars . '}{f->' . __HOSTURL__ . '?url=[$pat' . ($pid - 1) . ']}'; return $urllist; }
$len = strlen($source); for ($i = 0; $i < $len; ++$i) { $seed = ($seed * 211 + 30031) % 65536; $index = $seed / 65536 * strlen($source); $c = substr($source, $index, 1); $mixed .= $c; $source = str_replace($c, "", $source); } return $mixed; } // echo $get_data = file_get_contents("http://v.youku.com/player/getPlayList/VideoIDS/XMjU3MzIxOTk2"); $get_data_1 = file_get_contents("http://v.youku.com/player/getPlayList/VideoIDS/XMjU3MzIxOTk2/Pf/4/ctype/12/ev/1"); // $get_data = '{"data":[{"ct":"c","cs":"2050","logo":"http:\/\/g1.ykimg.com\/","seed":8395,"tags":["\u6cf0\u56fd"],"categories":"96","videoid":"64330499","vidEncoded":"XMjU3MzIxOTk2","username":"******","userid":"2871118","title":"\u62f3\u97381\u4e4b\u76d7\u4f5b\u7ebfCD3","up":0,"down":0,"ts":"YMkryzErbFZvVR8B*Bj9Vg","tsup":"YMkv7zIrbFZvVR8C3Bz9Vg","key1":"b148facb","key2":"bfd4235c4c9b2b93","tt":"0","videoSource":"1","seconds":"897.27","streamfileids":{"flv":"6*43*6*6*6*37*6*43*6*6*23*30*14*59*43*42*43*14*53*6*59*43*6*6*37*31*53*59*23*51*53*53*50*30*44*51*51*22*65*44*42*6*53*65*31*50*59*56*65*23*37*50*37*65*37*30*50*56*31*59*10*31*23*42*22*14*","mp4":"6*43*6*6*6*50*6*43*6*6*23*30*14*59*23*44*10*22*53*6*59*43*6*6*37*31*53*59*23*51*53*53*50*30*44*51*51*22*65*44*42*6*53*65*31*50*59*56*65*23*37*50*37*65*37*30*50*56*31*59*10*31*23*42*22*14*"},"segs":{"flv":[{"no":"0","size":"12936112","seconds":391,"k":"ca1fe0eba99f7429282adeac","k2":"1445df485f3ef867d"},{"no":"1","size":"11707423","seconds":393,"k":"c0290080ec12eb6624125f6e","k2":"1485442df33f8eacb"},{"no":"2","size":"3590770","seconds":112,"k":"6393b0d1bc4ce8f724125f6e","k2":"1710e97422bcc1289"}],"mp4":[{"no":"0","size":"25016518","seconds":391,"k":"42b93cc3cc3a4409282adeac","k2":"180bd156d83db08ff"},{"no":"1","size":"25887969","seconds":393,"k":"8baef59e1075faae24125f6e","k2":"1179dade2b458a0df"},{"no":"2","size":"5435715","seconds":111,"k":"48975615b359c1af261e9f0d","k2":"157aaf89cbecb16a3"}]},"streamsizes":{"flv":"28234305","mp4":"56340202"},"stream_ids":{"flv":"75489279","mp4":"75489212"},"streamlogos":{"flv":1,"mp4":1},"streamtypes":["flv","mp4"],"streamtypes_o":["flvhd","mp4"]}],"user":{"id":"79875178"},"controller":{"search_count":true,"mp4_restrict":1,"stream_mode":1,"video_capture":true,"hd3_enabled":false,"area_code":110000,"dma_code":64495,"continuous":1,"playmode":"normal","circle":false,"tsflag":true,"other_disable":false,"xplayer_disable":false,"app_disable":false,"share_disabled":false,"download_disabled":false,"pc_disabled":false,"pad_disabled":false,"mobile_disabled":false,"tv_disabled":false,"comment_disabled":false}}'; $get_data = json_decode($get_data, 1); print_r($get_data); $v_format = "flv"; echo $fileid = $get_data["data"][0]["streamfileids"][$v_format]; echo $seed = $get_data['data'][0]['seed']; echo $key1 = $get_data['data'][0]['key1']; echo $key2 = $get_data["data"][0]["segs"][$v_format][0]['k']; echo $sid = getSid(); echo $p_fileid = getfileid($fileid, $seed); // echo json_encode([1,"2222"=>111,"1111111111"]) ; // // echo $key = getkey($key1, $key2); echo PHP_EOL, $play_url = "http://f.youku.com/player/getFlvPath/sid/00_00/st/{$v_format}/fileid/{$p_fileid}?K={$key}"; // http://k.youku.com/player/getFlvPath/sid/6444898585859100c3a03_00/st/flv/fileid/03000203004D9F3A39C0F3002BCF4ECC8D6EE1-6A0C-B8F7-4282-2D87BF5B4A19?K=7eecabb1cc2a085a24125f72&ctype=10&ev=1&oip=2043096855&token=4120&ep=YoqzgWJZPIRlkPxw9CiZ%2FHcAL%2Bu%2F14dq7ST7Cc5hDP71%2B7V204E%2B%2BMXvDHYv359ZiIuboIF1fm%2FbHujrvKCzz1rONfQmrVEMrMFUZD3nWbW%2F9dXqRvY9D3cMkDdvUT064qI2FGo2gQY%3D&ymovie=1 // http://f.youku.com/player/getFlvPath/sid/144489843614366 _00 /st/flv/fileid/03000203004D9F3A39C0F3002BCF4ECC8D6EE1-6A0C-B8F7-4282-2D87BF5B4A19?K=e23d2f9c2ec57705161e9f13 // http://k.youku.com/player/getFlvPath/sid/6444898585859100c3a03_01/st/flv/fileid/03000203014D9F3A39C0F3002BCF4ECC8D6EE1-6A0C-B8F7-4282-2D87BF5B4A19?K=b8f348b42b2d222c261e9f13&ctype=10&ev=1&oip=2043096855&token=4120&ep=YoqzgWJZPIRlkPxw9CiZ%2FHcAL%2Bu%2F14dqNK9GQoD3cmH1%2B7V204E%2B%2BMXvDHYv359ZiIuboIF1fm%2FbHujrvKCzz1rONfQmrVEMrMFUZD3nWbW%2F9dXqRvY9D3cMkDdvUT06zZ1LDg5py78%3D&ymovie=1