解析获取优酷视频真实下载地址的PHP源代码

代码如下:

<?php
//--调用方法/demo.php?url=http://v.youku.com/v_show/id_XMzkyODA2NTEy.html
echo getYoukuFlv($_GET['url']);

function getYoukuFlv($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 get_curl_contents($url, $second = 5){
    if(!function_exists('curl_init')) die('php.ini未开启php_curl.dll');
    $c = curl_init();
    curl_setopt($c,CURLOPT_URL,$url);
    $UserAgent=$_SERVER['HTTP_USER_AGENT'];
    curl_setopt($c,CURLOPT_USERAGENT,$UserAgent);
    curl_setopt($c,CURLOPT_HEADER,0);
    curl_setopt($c,CURLOPT_TIMEOUT,$second);
    curl_setopt($c,CURLOPT_RETURNTRANSFER, true);
    $cnt = curl_exec($c);
    $cnt=mb_check_encoding($cnt,'utf-8')?iconv('gbk','utf-8//IGNORE',$cnt):$cnt; //字符编码转换
    curl_close($c);
    return $cnt;
}
function getSid() {
    $sid = time().(rand(0,9000)+10000);
    return $sid;
}
function getkey($key1,$key2){
    $a = hexdec($key1);
    $b = $a ^ 0xA55AA5A5;
    $b = dechex($b);
    return $key2.$b;
}
function getfileid($fileId,$seed) {
    $mixed = getMixString($seed);
    $ids = explode("*",$fileId);
    unset($ids[count($ids)-1]);
    $realId = "";
    for ($i=0;$i < count($ids);++$i) {
    $idx = $ids[$i];
    $realId .= substr($mixed,$idx,1);
    }
    return $realId;
}
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;
}
?>

(0)

相关推荐

  • 把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数

    这几天在写一个小程序的时候,需要用到正则表达式匹配用户输入文本中的URL地址,然后将URL地址替换成可以点击的链接.URL地址的匹配,我想这应该是大家在做验证处理中常会用到的,这里就把我整合的一个比较完整的表达式给出来: 复制代码 代码如下: var URL = /(https?:\/\/|ftps?:\/\/)?((\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(:[0-9]+)?|(localhost)(:[0-9]+)?|([\w]+\.)(\S+)(\w{2,4}

  • PHP中IP地址与整型数字互相转换详解

    IP转换成整型存储是数据库优化一大趋势,不少人目前存储IP时还在使用字符串类型存储,字符串索引比整型索引消耗资源很多,特别是表中数据量大的时候,以及求查询某一个ip段的数据,今天说的ip是指ip4,ip6不在本文范围内. 系统函数ip2long与long2ip PHP中有内置函数ip2long可以将ip地址转换整型. 复制代码 代码如下: $ip = '210.110.11.49'; echo ip2long($ip); 输出: 复制代码 代码如下: -764540111 输出的整型有负号是因为

  • php实现把url转换迅雷thunder资源下载地址的方法

    本文实例讲述了php实现把url转换迅雷thunder资源下载地址的方法.分享给大家供大家参考.具体方法分析如下: 如果你知道迅雷地址的生成规则你就不觉得迅雷的url资源下载地址有多么复杂了, 其实雷的地址就是原url前面带AA后面带BB之后再base64_encode编码即可 如下例子所示: 复制代码 代码如下: <?php function Thunder($url, $type='en') { $url ='http://www.jb51.net'; if($type =='en'){ r

  • PHP转换IP地址到真实地址的方法详解

    想要把IPv4地址转为真实的地址,肯定要参考IP数据库,商业的IP数据库存储在关系型数据库中,查询和使用都非常方便,但是成本不是个人和小公 司愿意承受的,所以简单应用的思路就是利用一些免费的IP数据库或者一些大网站提供的查询API,他们的数据量足够我们使用了.1. 利用纯真IP数据库利用本地的QQWry.Dat文件,优点是查询速度非常快,缺点是数据库文件要放在自己的空间内并且要偶尔更新数据库.时间关系废话不多说,下面是 使用这个文件的函数,如果是在WordPress里面使用这个功能,把下面的代码

  • php获取当前页面完整URL地址

    使用PHP编写程序的时候,我们常常想要获取当前页面的URL.下面提供一个用于获取当前页面URL的函数以及使用方法: 示例一: <?php // 说明:获取完整URL function curPageURL() { $pageURL = 'http'; if ($_SERVER["HTTPS"] == "on") { $pageURL .= "s"; } $pageURL .= "://"; if ($_SERVER[&q

  • 腾讯QQ php程序员面试题目整理

    说在前面: 1.以下题目,除了编程任务外其他都需要写在给你提供的草纸上.纸张是珍贵的地球资源,请节约使用.编程任务在有相应的环境时,会要求上机书写,实在没有条件,就只能写在草纸上了. 2.时间: 基础任务+进阶任务+设计任务 = 90分钟 编程任务 = 60分钟 基础任务: 1.请列举你能想到的UNIX信号,并说明信号用途. 2.请列举.你能想到的所有的字符串查找算法,并加注释简单说明. 3.有一个IP地址(192.168.0.1),请写出其32位无符号整数形式. 4.写出.你能想到的所有HTT

  • PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法

    本文实例讲述了PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法.分享给大家供大家参考,具体如下: 很多用户不知道如何复制flash地址,只能在程序中帮他们替换了: <?php /** * 支持优酷.土豆.腾讯视频html到swf转换 */ function convert_html_to_swf($url = '') { if(!is_string($url) || empty($url)) return ; if(strpos($url, 'swf')) return

  • php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)

    需要提取的内容如下: 复制代码 代码如下: <a href="http://baidu.com">http://baidu.com</a>这是第一个A标签,<a href="http://blog.baidu.com">成长脚印-专注于互联网发展</a>这是第二个A标签.http://www.jb51.net这是第一个需要被提取的URL地址,http://blog.baidu.com这是第二个需要被提取的URL地址'.

  • php利用腾讯ip分享计划获取地理位置示例分享

    复制代码 代码如下: <?phpfunction getIPLoc_QQ($queryIP){    $url = 'http://ip.qq.com/cgi-bin/searchip?searchip1='.$queryIP;    $ch = curl_init($url);    curl_setopt($ch,CURLOPT_ENCODING ,'gb2312');  curl_setopt($ch, CURLOPT_TIMEOUT, 10);   curl_setopt($ch, CU

  • PHP采集腾讯微博的实现代码

    复制代码 代码如下: <?php header("Content-type:text/html;charset=utf-8"); $weibo = file_get_contents('http://t.qq.com/starank'); $preg = '/<div class="msgCnt">(.*)<\/div><div class="mediaWrap">/Uis'; preg_match_al

  • PHP实现使用优酷土豆视频地址获取swf播放器分享地址

    项目用到临时写的.待完善: 复制代码 代码如下: /*     * 根据用户提交的(swf/html)地址,获取优酷,土豆的swf播放地址     * */    private function _getSwf ($url = '') {        if(isset($url) && !empty($url)){            preg_match_all('/http:\/\/(.*?)?\.(.*?)?\.com\/(.*)/',$url,$types);       

随机推荐