这个项目通过一个优酷或者爱奇艺的视频地址,最终可以得到视频的下载地址
这个项目的想法是来源:https://github.com/keygle/parseVideo
因为自己要用到优酷和奇艺,所以就测试了这两个,测试结果是优酷的可以使用,爱奇艺的已经失效。
经过研究爱奇艺的视频页面的http请求,以及反编译视频播放器,找到它的下载地址,自己做了一个pr,现在该项目作者已经merge了。
这是一个php工程,所以自己用node把这个工程里面解析优酷和爱奇艺的方法重写了下
说明:
最终取到的爱奇艺的地址
http://data.video.qiyi.com/f3060e76a71fedac773d327734e723f2/videos/v0/20141023/7b/b5/96c5fa7650168e97c445f976b0b5b68f.f4v?ran=1000&qyid=08ca8cb480c0384cb5d3db068161f44f&qypid=321778500_11&retry=1
是这样的,下载地址需要请求上面这个地址得到:
{
"t": "CT|ShangHai-101.81.48.14",
"s": "1",
"z": "hengyang3_ct",
"h": "0",
"l": "http://220.170.79.37/videos/v0/20141221/38/e6/4be4e1cad4374d3447be144397366ff8.f4v?key=8f5bdcd17a8765c&ran=1000&qyid=08ca8cb480c0384cb5d3db068161f44f&qypid=335764500_11&retry=1&uuid=6551300e-5497c256-36",
"e": "0"
}
返回结果中的l是真正的下载地址,而这个地址失效时间非常短,故返回的是上面的地址,如果最终取到的下载地址失效,再次请求返回的这个地址即可.
这个项目相当于把那个项目用node实现了一把。
基本用法:参考test.js
如果有问题,欢迎大家做pr
分析优酷的下载地址可以参考这篇文章
##2015 03 16 更新
var video = require('./index');
video('http://www.iqiyi.com/v_19rrnbyreg.html','MP4',function(err,data){
console.log(data);
});
第一个参数是视频地址(必填),第二参数是返回的视频格式(选填,只针对爱奇艺),第三个参数回掉函数(必填)
ps:爱奇艺的mp4结果不是很稳定,有时解析出来的地址无法播放,解决办法只能多解析几次,这个是爱奇艺的问题,他的移动版就是这样,经常无法播放
##2015 10 08