Home >php教程 >php手册 >优酷全站视频代理程序

优酷全站视频代理程序

WBOY
WBOYOriginal
2016-06-07 11:44:541702browse
申明:全部搜集于优酷网,版权属于优酷网!由于官网不断地改变规则,故有些视频在采集后播放不了。把代码贴出来,让大家学习研究,请不要用作它途传播!若因此而造成的任何责任,本人概不负责!
演示:http://chaoqing.duapp.com/chaoqing.swf?lists=daili/youku.com<?php <br /> <br> <br> // 防盗链<br> $Anti_theft = False; // 是否开启防盗链 True 为开启,False 为关闭。<br> <br> // 需要输出那些分类的,仅在直接调用php的情况下有效。<br> //不需要输出,直接注释掉或删除那一行。<br> $p_olist = array(<br>             84=>"纪录片",<br>             85=>"综艺",<br>             96=>"电影",<br>             97=>"电视剧",<br>             100=>"动漫"<br> );<br> $p_showlist = array(<br>             86=>"娱乐",<br>             87=>"教育",<br>             88=>"旅游",<br>             89=>"时尚",<br>             90=>"母婴",<br>             91=>"资讯",<br>             92=>"原创",<br>             94=>"搞笑",<br>             98=>"体育",<br>             99=>"游戏",<br>             102=>"广告",<br>             103=>"生活",<br>             104=>"汽车",<br>             105=>"科技"<br> );<br> <br> <br> //好了,下面的东西就不要乱动了,动了后果自负。<br> <br> error_reporting(0);<br> header("Content-type: text/xml; charset=utf-8");<br> <br> //获得当前页面的URL<br> $fname = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'];<br> <br> if($Anti_theft == True){<br>     $refer = $_SERVER["HTTP_REFERER"];<br>     preg_match('/(.*):\/\/(.*)\//imsU',$refer,$refer);<br>     if ($_SERVER['SERVER_NAME'] != $refer[2]){<br>         $xml.= '<list><m></m></list>';<br>         echo $xml;<br>         exit;<br>     }<br> <br> }<br> <br> <br> if (isset($_GET['show'])){<br>     // 展示SHOW所有视屏 //<br>     $xml = get_show_page($_GET['show']);<br> } elseif (isset($_GET['movie_show'])) {<br>     // 如果传来的是 电影页面。<br>     $xml = get_movie_show($_GET['movie_show']);<br> } elseif (isset($_GET['olist']) and isset($_GET['showlist'])){<br>     // 同时传来 olist 与 showlist 时,拒绝输出。//<br>     echo "你是想叫我闹哪个?";<br> } elseif ( isset($_GET['olist']) ){<br>     // 处理 olist 列表 //<br>     if (isset($_GET['page'])) {<br>         // 传来页数,输出该页内容 //<br>         $xml = get_olist_page($_GET['olist'],$_GET['page']);<br>     } else {<br>         // 没有传来页数,则输出页数。//<br>         $xml = get_list_page("olist",$_GET['olist']);<br>     }<br> } elseif ( isset($_GET['showlist']) ){<br>     // 处理 showlist 列表<br>     if (isset($_GET['page'])) {<br>         // 传来页数,输出该页内容<br>         $xml = get_showlist_page($_GET['showlist'],page);<br>     } else {<br>         // 没有传来页数,则输出页数。 //<br>         $xml = get_list_page("showlist",$_GET['showlist']);<br>     }<br> } else {<br>     // 没有传来任何值,输出分类列表。<br>     $xml = get_vlist();<br> }<br> <br> // 两头附加上 <list><br> $xml ="<list>\n" . $xml . '</list>';<br> <br> // 如果不为 调试模式 ,则正常输出。<br> if(!isset($_GET['debug'])){<br>     echo $xml;<br> }<br> <br> <br> // 以下 获取并产生相关的列表<br> <br> //输出所有支持的分类列表<br> function get_vlist() {<br>         global $fname;<br>     global $p_olist;<br>     global $p_showlist;<br>         $list = '';<br>     foreach($p_olist as $key=>$id)<br>         {<br>             $list.='<m></m>'."\n";<br>         }<br>         $list.='<m></m>'."\n";<br>     foreach($p_showlist as $key=>$id)<br>         {<br>             $list.='<m></m>'."\n";<br>         }<br>         return $list;<br> }<br> //获取分页数量。<br> function get_list_page($v_name,$v_id) {<br>     global $fname;<br>     $list = '';<br>     if($v_name == "olist"){<br>         $url="http://www.youku.com/v_olist/c_" . $v_id . ".html";<br>     } elseif($v_name == "showlist") {<br>         $url="http://www.youku.com/v_showlist/c" . $v_id . ".html";<br>     }<br>     $url=g_contents($url);<br>     preg_match('/<li>...(.*)</li> <li><a>(.*)/imsU',$url,$page);<br>     $page=$page[4];<br>     if ($page == ""){<br>         preg_match('/<ul>(.*)/imsU',$url,$page);<br>         preg_match_all('/charset="(.*)">(.*)/imsU',$page[1],$page);<br>         $page = end($page[2]);<br>     }<br>     if($page!="")for($i=1;$i         $list.='<m></m>'."\n";<br>     }<br>     return $list;<br> }<br> <br> <br> // 获取指定 olist 某页的所有视频<br> function get_olist_page($v_id,$page){<br>     global $fname;<br>     if ($v_id == 96){<br>         return get_olist_movie_page($page);<br>     }<br>     // http://www.youku.com/v_olist/c_85_p_4.html<br>     $url='http://www.youku.com/v_olist/c_' . $v_id . '_p_'.$page.'.html';<br>     $url=g_contents($url);<br>     $list='';<br>     preg_match('/<!-- movies list begin -->(.*)<!-- vdata_list end -->/imsU',$url,$arr);<br>     preg_match_all('|<li> <a></a>     //print_r($id);<br>     $ids=$id[1];<br>     $title=$id[2];<br>     foreach($ids as $k=>$id ){<br>     $list.='<m></m>'."\n";<br>     }<br>     return $list;<br> }<br> <br> // 针对 电影页面,特别制作。<br> <br> function get_olist_movie_page($page){<br>     global $fname;<br>     $url='http://www.youku.com/v_olist/c_96_p_'.$page.'.html';<br>     $url=g_contents($url);<br>     $list='';<br>     preg_match('/<!-- movies list begin -->(.*)<!-- vdata_list end -->/imsU',$url,$arr);<br>     preg_match_all('|</li> <li> <a> <span>(.*)(.*)(.*)|imsU',$arr[1],$id);<br>     $e_id=$id[1];<br>     $e_title=$id[2];<br>     $e_Actor=$id[5];<br>     $e_type=$id[7];<br>     $e_free=$id[9];<br>     foreach($e_id as $k=>$e_id ){<br>         preg_match_all('|>(.*)</span></a>|imsU',$e_Actor[$k],$Actors);<br>         $Actors = $Actors[1];<br>         //print_r($Actors);<br>         $Actor = '';<br>         foreach($Actors as $key=>$k_id ){<br>             if ($key != 0){<br>                 $Actor.= ",";<br>             }<br>             $Actor.= $k_id;<br>         }<br>         $e_typeB = "";<br>         if($e_type[$k] != "正片"){<br>             $e_typeB = '[预]';<br>         }<br>         if($e_free[$k] == "今日新增:"){<br>             $list.='<m></m>'."\n";<br>         }<br>     }<br>     return $list;<br> }<br> <br> // 输出电影页面细节。<br> <br> function get_movie_show($show_id){<br>     $url='http://www.youku.com/show_page/id_' . $show_id . '.html';<br>     $url=g_contents($url);<br>     $list='';<br>     preg_match("|videoUrl:'http://v.youku.com/v_show/id_(\w{13}).html'(.*)><em>播放预告片|imsU",$url,$e_notice);<br>     preg_match('|href="http://v.youku.com/v_show/id_(\w{13}).html" target="_blank"><em>播放正片|imsU',$url,$e_formal);<br>     preg_match_all('|http:\/\/v.youku.com\/v_show\/id_(\w{13}).html(.*)>(.*)|imsU',$url,$id);<br>     if($e_formal[1] != ""){$list.='<m></m>'."\n";}<br>     if($e_notice[1] != ""){$list.='<m></m>'."\n";}<br>     //print_r($id);<br>     $e_title=$id[3];<br>     foreach($e_title as $key=>$k_id ){<br>         if($k_id != ""){<br>             preg_match('//imsU',$k_id,$ids);<br>             if($ids[1] == ""){<br>                 $list.='<m></m>'."\n";<br>             }<br>         }<br>     }<br>     return $list;<br> }<br> <br> <br> <br> //输出视频列表<br> function get_show_page($show_id){<br>     $url='http://www.youku.com/show_page/id_'.$show_id.'.html';<br>     $url=g_contents($url);<br>     $list='';<br>     preg_match('/id="zySeriesTab">(.*)/imsU',$url,$arr);<br>     preg_match_all('/<li>     //print_r($id);<br>     if($id[1][0] == ""){$id[1][0] = "reload_1";}<br>     foreach ($id[1] as $reload)<br>     {<br>         $url="http://www.youku.com/show_episode/id_" . $show_id . ".html?dt=json&divid=" . $reload . "&__rt=1&__ro=" . $reload;<br>         $url=g_contents($url);<br>         //preg_match_all('/href="http:\/\/v.youku.com\/v_show\/id_(.*).html/',$url,$v_id);<br>         //preg_match_all('/target="_blank">(.*)/',$url,$v_name);<br>         preg_match_all('|href="http://v.youku.com/v_show/id_(.*).html" t(.*)_blank">(.*)</em></em> </li> </ul></a></li>|',$url,$v_name);<br>         $v_id = $v_name[1];<br>         $v_name = $v_name[3];<br>         foreach($v_id as $key=>$id)<br>         {<br>             //echo $v_name[$key].'=>'.$value . "\n";<br>             $list.='<m></m>'."\n";<br>         }<br>     }<br>     return $list;<br> }<br> <br> // 输出 showlist 的视频列表<br> function get_showlist_page($show_id,$page){<br>     $url='http://www.youku.com/v_showlist/c' . $show_id . 'p' . $page . '.html';<br>     $url=g_contents($url);<br>     $list='';<br>     preg_match('/<!-- movies list begin -->(.*)<!--vdata_list end-->/imsU',$url,$arr);<br>     preg_match_all('|<li><a>|imsU',$arr[1],$id);<br>     //print_r($id);<br>     $v_id = $id[1];<br>     $v_title = $id[2];<br>     foreach($v_id as $key=>$id)<br>     {<br>         //echo $v_name[$key].'=>'.$value . "\n";<br>         $list.='<m></m>'."\n";<br>     }<br>     return $list;<br> }<br> <br> //一些共用的处理参数。<br> <br> // 转义特殊符号。<br> function str_escape($str_subject) {<br> $arr_search = array('','&','\'','"');<br> $arr_replace = array('','&',''','"');<br> $str = str_ireplace($arr_search,$arr_replace,$str_subject);<br>     return $str;<br> }<br> <br> //伪造用户User Agent 读取网页内容。<br> // 可用 file_get_contents(filename); 代替。<br> <br> function g_contents($url) {<br>         $user_agent = $_SERVER['HTTP_USER_AGENT'];<br>         $ch = curl_init();<br>         curl_setopt($ch, CURLOPT_URL, $url);<br>         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br>         curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);<br>         curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);<br>         @ $data = curl_exec($ch);<br>         curl_close($ch);<br>         return $data;<br> }<br> ?></a></li></list>

AD:真正免费,域名+虚机+企业邮箱=0元

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn