分析优酷/土豆/pptv HTML5、m3u8地址



http://blog.xiaohai.co/archives/youku-html5/


YouTube已经支持HTML5嵌入。YouKu目前全站支持HTML5,不过嵌入代码还是Flash的。抽空分析了下HTML5下的播放地址,很简单。
update:2011-04-27
发现获取m3u8 最简单的办法
http://v.youku.com/player/getRealM3U8/vid/XMjUzMzUxNzQ4/type//video.m3u8
XMjUzMzUxNzQ4 为视频ID 自行修改 在苹果设备中直接播放
–分割线–
以此视频链接为例: http://v.youku.com/v_show/id_XMjUzMzUxNzQ4.html
查看js文件找到一个优酷的链接JSON信息
http://v.youku.com/player/getPlayList/VideoIDS/+VideoId VideoId=XMjUzMzUxNzQ4 也就是 http://v.youku.com/player/getPlayList/VideoIDS/XMjUzMzUxNzQ4
VideoId可以使用全数字的或者Encoded的
通过获取js获取src我获得一个链接
http://v.youku.com/player/getM3U8/vid/63337937/type/mp4/sid/130102475520012/K/fb9bf1a9f ad2f18c182699ea/video.m3u8
vid=视频id *注意*非列表id


sid=时间+随机数
K=key 由函数生成
m3u8是列表文件 在IOS 上可以读取的到
vid 我们可以在json里直接获取,其他几项需要几个函数
sid获取 php代码
function sid() { $sid = time().(rand(0,9000)+10000); return $sid; }
key获取 网上转载 呵呵
function getkey($key1,$key2){ $a = hexdec($key1); $b = $a ^ 0xA55AA5A5; $b = dechex($b); return $key2.$b; }
之后合并下数据就可以了
附小实例
 
type这块经测试可以省略掉 如果出现异常可以通过
$play->data[0]->streamtypes
来获取
拿起iPhone 打开网页 点击播放 YouKu的视频就来了!呵呵
本文如有错误欢迎指正
本站分享的视频音乐均支持html5播放个别例外




----------------------




pptv是html5里盗版电影最全的.都是MP4格式
主页地址
http://ipad.pptv.com/
一、取id
如正常观看地址为 http://ikan.pptv.com/p/10055638
那么MP4格式的需要转换成http://ipad.pptv.com/play_10055638.htm
由于pptv做了浏览器限制 所有需要用curl模拟iPad。
以下代码是 curl的函数
function curl($url) { $curl = curl_init(); curl_setopt($curl,CURLOPT_URL,$url); curl_setopt($curl,CURLOPT_HEADER,0); curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); curl_setopt($curl,CURLOPT_USERAGENT,"Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; zh-cn) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5"); //模拟苹果设备 $data = curl_exec($curl); curl_close($curl); return $data; }
二、取PlayList信息


这个是MD5加密的 具体是怎么加密的 没去研究
查看源文件 找到如此代码
var PlayList = ["ed132f42c1a386b26871a81914278920"];
三、合并链接取播放地址
合并成如下地址
http://ipad.pptv.com/api/ipad/list.js?cb=load.cbs.cb_1&md5=ed132f42c1a386b26871a81914278920
取得json 可以看到一个m3u的列表地址 嵌入到网页里就可以
四、小实例
 
五、总结
没什么技术含量 主要是为了支持本站的分享电影
如有错误 欢迎指正。


------------------------------------------------------------


http://zhouguangwu.sinaapp.com/detail.php?id=720
目前煎蛋能支持 iOS 设备播放优酷视频,因为优酷的html5格式比较有规律,比如视频页面地址是 http://v.youku.com/v_show/id_xxxx.html,那么 .m3u8 文件地址是 http://v.youku.com/player/getRealM3U8/vid/xxxx/type/mp4/v.m3u8,很好匹配。


但是作为两大视频巨头的土豆,貌似不能直接 html5 播放。。。网上个个都说优酷和土豆都能用 iPhone/iPad 直接看视频,我反复测试土豆就是不行。然后我在土豆页面源码中找到这个 js 文件:
http://js.tudouui.com/js/page/play/ios/iosplayer_14.js


从中分析土豆 .m3u8 文件地址应该是 http://m3u8.tdimg.com",u,r,q,t+".m3u8
而 u,r,q,t 这四个值如何取得就不知道了,跟土豆视频的页面地址 http://www.tudou.com/programs/view/xxxx/ 毫无关系。


然后我随便找了一个首页视频:http://www.tudou.com/programs/view/aW5KnswOcG4/
看它源码,页头有一段:


,title:"韩庚江铠同恋情遭李湘强行拆散 传何炅曾是二人红娘"
,icode:"aW5KnswOcG4"
,cid:"1"
,ctid:"_104391162"
,ename:"土豆娱乐小窝"
,cttime:1337078627000
,oid:"73656148"
,hd:0
,dl:true
,prv:0
,pic:"http://i3.tdimg.com/140/736/636/p.jpg"
,time:"02:10"


显示它的视频缩略图地址是:http://i3.tdimg.com/140/736/636/p.jpg


你猜结果怎样?土豆的 .m3u8 文件地址真的是 http://m3u8.tdimg.com/140/736/636/2.m3u8(现在不是2,是3了)
测试了多个都是如此。我擦擦擦擦擦擦……


这太不科学了。估计要能在煎蛋支持 iOS 切换到 HTML5 方式播放的话,有两种方式:
1、用curl方式,抓取土豆视频页面的缩略图地址,再替换为.m3u8 文件地址
2、获取土豆的 api 做个专门插件,获取土豆视频的缩略图地址,再替换为.m3u8 文件地址


总之很坑爹。所以杨总,我们能尽量用优酷不。。。


update:杨总联系了土豆的技术人员,他们给了我土豆 html5 兼容的视频代码:


<iframe width="宽度" height="高度" frameborder="0" src="http://www.tudou.com/programs/view/html5embed.action?code=xxxx"></iframe>




其中代码与土豆视频网址的 http://www.tudou.com/programs/view/xxxx/ 对应
搜索
http://api.tudou.com/v3/gw?method=item.search&appKey=myKey&format=xml&kw=毕业季&pageNo=1&pageSize=20&inDays=1&media=v
http://api.tudou.com/v3/gw?method=item.info.get&appKey=myKey&format=xml&itemCodes=VpjNU2qwMUw得到视频详情,和缩略图
ttp://i2.tdimg.com/147/806/921/m25.jpg   更具缩略图, 得到视频的m3u8地址
http://m3u8.tdimg.com/147/806/921/3.m3u8
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值