php解析视频flash地址
来源:互联网 发布:威风堂堂mmd镜头数据 编辑:程序博客网 时间:2024/04/29 13:19
最近在做产品的外部文件链接功能时,遇到这样一个需求,即获取其他视频网站,例如优酷、土豆、腾讯等网站的视频flash地址,通过分析大致明白了视频flash地址的获取方法。
方法很简单,就是对比分析当前视频页面地址和视频的flash地址的区别,然后利用代码解析页面地址,获取视频id,然后拼接出flash地址。
下面以优酷视频为例:
页面地址如下:
http://v.youku.com/v_show/id_XMTM4OTE2NzQwOA==.html
然后在视频下面找到分享按钮,展开就能看到视频的flash地址,如下:
http://player.youku.com/player.php/sid/XMTM4OTE2NzQwOA==/v.swf
对比一下,就可以看到视频的id,即XMTM4OTE2NzQwOA==,我们的目的就是从网页地址中,获取这个id,然后拼接出flash地址。这样就可以在浏览器中,直接打开这个视频了。
代码如下:
$idFirst = stripos($url, 'id_');$idSecond = stripos($url, '.html');$length = $idSecond - $idFirst -3;$id = substr($url, $idFirst+3, $length);$swf = "http://player.youku.com/player.php/sid/".$id."/v.swf";
这样,我们就构造出了优酷视频的flash地址,当然,事情并没有那么简单,对于不同的视频站点,需要做的还有很多。这里我分析以下几个视频网站flash地址获取方式,优酷、腾讯、土豆、酷6。方法就是先区分域名,再根据域名拼接不同视频站点的flash地址,具体代码如下:
<?phpheader("Content-type:text/html;charset=utf-8");/**预定义测试url*/$url = "http://v.youku.com/v_show/id_XMTM0NDA0MTAyOA==.html?from=y1.2-2-97.3.1-1.1-3-1-0-0";$url1 = "http://www.tudou.com/albumplay/Lqfme5hSolM/xBj3Xe-qQug.html";$url2 = "http://v.ku6.com/show/D_afOk_NpYrwmf-Nf7-CaQ...html?hpsrc=1_25_1_1_0";$url3 = "http://v.qq.com/cover/a/ao0150t07di8k5w.html?vid=f0018revbok";/*** 解析不同视频站点* @param $url* @return bool*/function getSwfAddress($url){ $domainFirst = stripos($url, '.'); $domainSecond = stripos($url, '.com'); $len = $domainSecond - $domainFirst - 1; $domain = substr($url, $domainFirst+1, $len); if(!strcasecmp($domain, "youku")){ $idFirst = stripos($url, 'id_'); $idSecond = stripos($url, '.html'); $length = $idSecond - $idFirst -3; $id = substr($url, $idFirst+3, $length); $swf = "http://player.youku.com/player.php/sid/".$id."/v.swf"; return [$swf, $id]; }elseif(!strcasecmp($domain, "tudou")){ $idFirst = stripos($url, 'albumplay/'); $idSecond = stripos($url, '.html'); $length = $idSecond - $idFirst -10; $id = substr($url, $idFirst+10, 11); $swf = "http://www.tudou.com/a/".$id."/v.swf"; return [$swf, $id]; }elseif(!strcasecmp($domain, "ku6")){ $idFirst = stripos($url, 'show/'); $idSecond = stripos($url, '.html'); $length = $idSecond - $idFirst -5; $id = substr($url, $idFirst+5, $length); $swf = "http://player.ku6.com/refer/".$id."/v.swf"; return [$swf, $id]; }elseif(!strcasecmp($domain, "qq")){ $idFirst = stripos($url, 'vid='); $id = substr($url, $idFirst+4); $swf = "http://static.video.qq.com/TPout.swf?vid=".$id; return [$swf, $id]; }}list($key, $value) = getSwfAddress($url3);echo "<a href='".$key."'>查看</a>";?>
0 0
- php解析视频flash地址
- 使用PHP提取视频网站页面中的FLASH地址
- 优酷视频地址解析——真实地址(flash地址)
- 视频缩略图地址、视频flash地址
- php+flash视频开发
- 视频地址解析
- PHP解析网页视频
- PHP解析网页视频
- 土豆视频真实地址解析
- 腾讯视频真实地址解析
- 土豆视频真实地址解析
- 腾讯视频真实地址解析
- Youtube 视频地址解析 C#
- 腾讯视频下载地址解析
- 视频真实地址解析分析
- 视频真实地址解析工具
- 解析网络视频真实地址
- 腾讯视频真实地址解析
- 线程堆栈大小 pthread_attr_setstacksize 的使用【转】 http://www.cnblogs.com/qq78292959/archive/2012/03/29/2423821
- git常见问题
- iOS 读取plist文件内容
- HTTP协议学习(二)——响应状态码及其含义
- 第二章 scala入门初探
- php解析视频flash地址
- jsp&servlet编码问题解决方法
- gcc -E 预编译模板类
- 【C++】非递归遍历二叉树
- POJ 3177 Redundant Paths 图的强连通
- java问题1解决方法:repaint()(更新ing)
- java类、抽象类和接口
- NOIP一道水题
- leetcode137 Single Number II