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

优酷全站视频代理程序

WBOY
WBOYoriginal
2016-06-07 11:44:541702parcourir
申明:全部搜集于优酷网,版权属于优酷网!由于官网不断地改变规则,故有些视频在采集后播放不了。把代码贴出来,让大家学习研究,请不要用作它途传播!若因此而造成的任何责任,本人概不负责!
演示: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元

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn