跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

优酷全站视频代理程序

申明 :全部搜集于优酷网,版权属于优酷网!由于官网不断地改变规则,故有些视频在采集后播放不了。把代码贴出来,让大家学习研究,请不要用作它途传播!若因此而造成的任何责任,本人概不负责! 演示:http://chaoqing.duapp.com/chaoqing.swf?lists=daili/youku.com


// 防盗链
$Anti_theft = False; // 是否开启防盗链 True 为开启,False 为关闭。

// 需要输出那些分类的,仅在直接调用php的情况下有效。
//不需要输出,直接注释掉或删除那一行。
$p_olist = array(
            84=>"纪录片",
            85=>"综艺",
            96=>"电影",
            97=>"电视剧",
            100=>"动漫"
);
$p_showlist = array(
            86=>"娱乐",
            87=>"教育",
            88=>"旅游",
            89=>"时尚",
            90=>"母婴",
            91=>"资讯",
            92=>"原创",
            94=>"搞笑",
            98=>"体育",
            99=>"游戏",
            102=>"广告",
            103=>"生活",
            104=>"汽车",
            105=>"科技"
);


//好了,下面的东西就不要乱动了,动了后果自负。

error_reporting(0);
header("Content-type: text/xml; charset=utf-8");

//获得当前页面的URL
$fname = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'];

if($Anti_theft == True){
    $refer = $_SERVER["HTTP_REFERER"];
    preg_match('/(.*):\/\/(.*)\//imsU',$refer,$refer);
    if ($_SERVER['SERVER_NAME'] != $refer[2]){
        $xml.= '';
        echo $xml;
        exit;
    }

}


if (isset($_GET['show'])){
    // 展示SHOW所有视屏 //
    $xml = get_show_page($_GET['show']);
} elseif (isset($_GET['movie_show'])) {
    // 如果传来的是 电影页面。
    $xml = get_movie_show($_GET['movie_show']);
} elseif (isset($_GET['olist']) and isset($_GET['showlist'])){
    // 同时传来 olist 与 showlist 时,拒绝输出。//
    echo "你是想叫我闹哪个?";
} elseif ( isset($_GET['olist']) ){
    // 处理 olist 列表 //
    if (isset($_GET['page'])) {
        // 传来页数,输出该页内容 //
        $xml = get_olist_page($_GET['olist'],$_GET['page']);
    } else {
        // 没有传来页数,则输出页数。//
        $xml = get_list_page("olist",$_GET['olist']);
    }
} elseif ( isset($_GET['showlist']) ){
    // 处理 showlist 列表
    if (isset($_GET['page'])) {
        // 传来页数,输出该页内容
        $xml = get_showlist_page($_GET['showlist'],page);
    } else {
        // 没有传来页数,则输出页数。 //
        $xml = get_list_page("showlist",$_GET['showlist']);
    }
} else {
    // 没有传来任何值,输出分类列表。
    $xml = get_vlist();
}

// 两头附加上 
$xml ="\n" . $xml . '';

// 如果不为 调试模式 ,则正常输出。
if(!isset($_GET['debug'])){
    echo $xml;
}


// 以下 获取并产生相关的列表

//输出所有支持的分类列表
function get_vlist() {
        global $fname;
    global $p_olist;
    global $p_showlist;
        $list = '';
    foreach($p_olist as $key=>$id)
        {
            $list.=''."\n";
        }
        $list.=''."\n";
    foreach($p_showlist as $key=>$id)
        {
            $list.=''."\n";
        }
        return $list;
}
//获取分页数量。
function get_list_page($v_name,$v_id) {
    global $fname;
    $list = '';
    if($v_name == "olist"){
        $url="http://www.youku.com/v_olist/c_" . $v_id . ".html";
    } elseif($v_name == "showlist") {
        $url="http://www.youku.com/v_showlist/c" . $v_id . ".html";
    }
    $url=g_contents($url);
    preg_match('/
  • ...(.*)
  • (.*)/imsU',$url,$page);
        $page=$page[4];
        if ($page == ""){
            preg_match('/
  • |',$url,$v_name);
            $v_id = $v_name[1];
            $v_name = $v_name[3];
            foreach($v_id as $key=>$id)
            {
                //echo $v_name[$key].'=>'.$value . "\n";
                $list.=''."\n";
            }
        }
        return $list;
    }

    // 输出 showlist 的视频列表
    function get_showlist_page($show_id,$page){
        $url='http://www.youku.com/v_showlist/c' . $show_id . 'p' . $page . '.html';
        $url=g_contents($url);
        $list='';
        preg_match('/(.*)/imsU',$url,$arr);
        preg_match_all('|
  • |imsU',$arr[1],$id);
        //print_r($id);
        $v_id = $id[1];
        $v_title = $id[2];
        foreach($v_id as $key=>$id)
        {
            //echo $v_name[$key].'=>'.$value . "\n";
            $list.=''."\n";
        }
        return $list;
    }

    //一些共用的处理参数。

    // 转义特殊符号。
    function str_escape($str_subject) {
    $arr_search = array('','&','\'','"');
    $arr_replace = array('','&',''','"');
    $str = str_ireplace($arr_search,$arr_replace,$str_subject);
        return $str;
    }

    //伪造用户User Agent 读取网页内容。
    // 可用 file_get_contents(filename); 代替。

    function g_contents($url) {
            $user_agent = $_SERVER['HTTP_USER_AGENT'];
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
            curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
            @ $data = curl_exec($ch);
            curl_close($ch);
            return $data;
    }
    ?>
  • AD:真正免费,域名+虚机+企业邮箱=0元

    相关文章