php解析视频flash地址

原创 2015年11月19日 21:09:06

最近在做产品的外部文件链接功能时,遇到这样一个需求,即获取其他视频网站,例如优酷、土豆、腾讯等网站的视频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地址,具体代码如下:

<?php
header("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>";

?>
版权声明:本文为博主原创文章,未经博主允许不得转载。

优酷视频地址解析——真实地址(flash地址)

稍后更新~~~~~

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

【React Native 安卓开发】----(Picker)【第四篇】

什么是Picker?Picker可以在iOS和Android上渲染原生的选择器(Picker)Picker基本用法 this.setState({language: lang})}> ...

基础篇章:关于 React Native 之 Picker 组件的讲解

今天我们就讲Picker ,顾名思义就是选择器。用法也是相当的简单。这里我们直接就看属性吧。Picker 的属性 onValueChange function 当选择器中的某一项被选中的时候进行回调此...

瑞杰php视频大全地址

  • 2012年12月28日 14:52
  • 3KB
  • 下载

获取优酷视频真实下载地址的PHP源代码

原文地址:http://www.51mzw.com/show-84-535-1.html //--调用方法/demo.php?url=http://v.youku.com/v_sho...
  • th362cn
  • th362cn
  • 2013年02月08日 23:41
  • 1341

php100视频教程下载地址

  • 2014年03月10日 21:30
  • 164B
  • 下载

php100视频教程下载(全集),下载地址链接(整理后包涵解压密码)

php100视频教程下载(全集),下载地址链接(整理后包涵解压密码) php100视频原始地址列表整理: 教程名称   、      1:环境配置与代码调试             ...
  • xcntime
  • xcntime
  • 2013年10月09日 16:59
  • 2362
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php解析视频flash地址
举报原因:
原因补充:

(最多只允许输入30个字)