知识大全 Youku 视频绝对地址获取的方法详解

Posted 地址

篇首语:聪明出于勤奋,天才在于积累。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Youku 视频绝对地址获取的方法详解相关的知识,希望对你有一定的参考价值。

Youku 视频绝对地址获取的方法详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  前一阵子为了研究 KnLiveCommentary 而进行了一系列的关于视频站点的研究 由于KnLiveCommentary需要能够获取充足的视频源进行测试 所以我们选取了 Youku(优酷)一个比较大的视频网站来进行测试 其实开始研究解析绝对地址也是为了研究Youku 的自带播放器 顺便去除广告什么的 后来我们就把Youku 的播放器用 ASV (ActionScript Viewer )“反编译”了一下 达到了惊人的效果 Youku的视频采取了加密+动态的获取方式 视频地址需要访问网站动态获取 而结果则还需经过解密等操作

复制代码 代码如下: $base_url = ; //获取视频信息的地址 基地址 $_VIDEO_ID = $_GET[ vid ]; //从GET里面把Video Id提取 if($_VIDEO_ID== ) $_VIDEO_ID = XMjY ODE MDA ; //我比较懒 测试的时 候就固定了一个 $ch = curl_init(); //开启cURL对象 curl_setopt($ch CURLOPT_URL $base_url $_VIDEO_ID); //获取这个视频的信息的地址 curl_setopt($ch CURLOPT_HEADER ); //要 HEADER curl_setopt($ch CURLOPT_RETURNTRANSFER ); curl_setopt($ch CURLOPT_REFERER $_VIDEO_ID); //给一个假的"REFERER" curl_setopt($ch CURLOPT_USERAGENT $_SERVER[ HTTP_USER_AGENT ]); //把现在的浏览器User Agent传递给服务器 curl_setopt($ch CURLOPT_NOBODY ); $content = curl_exec($ch); //执行!!! curl_close($ch); /*下面解析*/ preg_match(‘~”seed”s*:s*(d+)s* ~iUs $content $seed); preg_match(‘~s*”(flv|mp )”s*:s*”( *)”s*~iUs $content $encoded); preg_match(‘~”key ″s*:s*”( *)”s* ~iUs $content $key ); preg_match(‘~”key ″s*:s*”( *)”s* ~iUs $content $key ); //从返回的JSON串中提取必要信息 seed encoded_url key key class decoder var $randomSeed = ; var $cg_str=”"; function __construct($seed) $this >randomSeed = $seed; function ran() $this >randomSeed = (($this >randomSeed * )+ )% ; return ($this >randomSeed / );// 根据旧的 Seed 计算新的Seed 并且返回一个Seed的比例位置 [ ) function cg_hun() //估计这个叫 “CG混” 反正ASV解的函数就是这个名字 $this >cg_str=""; $sttext = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/: _ ; //默认字符串(最大) $len = strlen($sttext); //获取其长度 for($i= ;$i<$len;$i++) $cuch = (int)($this >ran()*strlen($sttext)); //获取字符串 Seed比例 位置的字符下标 $this >cg_str =$sttext[$cuch]; //把字母读出来 $sttext = str_replace($sttext[$cuch] ” $sttext); //删掉这个读出来的字母(到 就停) function decode($string) $output=”"; $this >cg_hun(); $expl = explode(‘* $string); //把 * * * * * 这个字符串打散 for($i= ;$i<count($expl) ;$i++) $output =$this >cg_str[(int)$expl[$i]]; //获取数字位代表的 cg_hun 打乱字符串字符 自此解密完成 return $output; //OK拉 function decode_key($key $key ) $key = hexdec($key ); //两个Key都是HEX $key = $key ^ ; //这个原来也是个 位HEX 后来被我用计算器算了数值 因为这样方便PhP位运算 return $key dechex($key); //合成最终 Key //解密类 用这个很方便$new = new decoder((int)$seed[ ]); $fileid = $new >decode($encoded[ ]); $key = $new >decode_key($key [ ] $key [ ]); //把数据喂进去 计算//地址载构成 $s = substr($fileid strlen($fileid)); $s = substr($fileid ); $s = substr($fileid ); // 拆开$s = ′;//注意这是一个 HEX 值 即 表示视频第一个分段 第二个 f第十五个…依此类推$sid = time() mt_rand( ) ′ mt_rand( ) ′;//获取一个随机的SID 给服务器(其实不会被检查) $d_ADDR = ‘$sid ‘_ $s ‘/st/ $encoded[ ] ‘/fileid/ $file_id; echo $d_ADDR ‘?K= $key; //最后把地址输出 cha138/Article/program/PHP/201311/20987

相关参考

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

解析获取优酷视频真实下载地址的PHP源代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishi

知识大全 ASP获取地址栏URL地址方法

ASP获取地址栏URL地址方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如果要想获取这样的

知识大全 asp 获取字符串中url地址函数

  asp教程获取字符串中url地址函数本文章提供了三款利用asp的正则获取字符串中url地址自定义函数哦三个方法的实现原理都是获取以开的url地址哦onerrorgotoz  dimurlkeyna

知识大全 获取用户真实IP地址代码

获取用户真实IP地址代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  获取用户真实IP地址代码

知识大全 asp 获取地址栏参数代码

  asp获取地址栏参数代码============================================  函数名JoinChar作 用向地址中加入?或&参 数

知识大全 利用Java获取本机mac地址

利用Java获取本机mac地址  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  publicsta

知识大全 ASP如何获取真实IP地址

ASP如何获取真实IP地址  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在ASP中使用Requ

知识大全 asp.net获取URL和IP地址

asp.net获取URL和IP地址  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  获取URL: 

知识大全 如何通过VB.NET获取网卡地址

如何通过VB.NET获取网卡地址  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  程序语言Micr

知识大全 JAVA获取绝对路径的问题

JAVA获取绝对路径的问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JAVA中获取绝对路径