前言
众所周知,视频在网页中使用FLV格式是最常用和方便的(原因你懂得),但是当我们在移动平台上就会遇到麻烦(FLASH不被这些移动设备支持,为啥?我也不知道!)但是这样一个需求来了,在Android平台上播放YouKu的视频。
So, 我就开始研究了!
分析
经过一番研究我发现,他们其实是有另外一个格式的视频存在,但是需要成为他们的合作伙伴(也就是想用的得意思意思)。因此得出结论方法有二:
成为他们的合作伙伴(这得花点买路钱)。
条条大路通罗马,绕道走。
过程
方法一,这里就不讨论了。我们主要讲方法二(如何绕道)。
第一步:网页内嵌的播放地址 例如:http://player.youku.com/player.php/Type/Folder/Fid/18117290/Ob/1/sid/XNDQ0MDQzMTgw/v.swf
猜测可得出“XNDQ0MDQzMTgw”这一段为视频的索引也就是ID
而优酷android app请求服务器的url为:
http://api.3g.youku.com/layout/phone2_1/play?point=1&id=XNDQ0MDQzMTgw&pid=352e7f78a0bc479b&format=4&language=guoyu&audiolang=1&guid=c7a0fd9f8f19ea5cbafde16f327f8004&ver=2.3.1&operator=%E4%B8%AD%E5%9B%BD%E8%81%94%E9%80%9A_46001&network=WIFI
返回值是一个json数据如下:
{
"status":"success",
"lang":"",
"title":"\u5916\u4ea4\u90e8\u56de\u5e94\u65e5\u9a7b\u534e\u5927
\u4f7f\u5750\u8f66\u60ac\u6302\u7684\u56fd\u65d7\u88ab\u62a2\uff1a\u4e2d\u65b9\u6b63\u5728
\u8ba4\u771f\u8c03\u67e5[\u770b\u4e1c\u65b9]",
"weburl":"http://v.youku.com/v_show/id_XNDQ0MDQzMTgw.html",
"videoid":"XNDQ0MDQzMTgw",
"results":{
"3gphd":[
{
"seconds":26,"url":"http://f.youku.com/player/getFlvPath/sid/134625952093737_01/st/mp4/fileid/
0300200100503C2912CACF06F7B7BE321D4B39-09C7-D266-1DC7-72FBD749E129?
K=74d69d0e9a11e5ab261c87ec&hd=0",
"id":1,
"size":959876
}
],
"3gphd_rtsp":[
{"seconds":26,"url":"rtsp://vod1.3g.youku.com/0300200100503C2912CACF06F7B7BE321D4B3
9-09C7-D266-1DC7-72FBD749E129.mp4","id":1,"size":959876}
]
},
"points":[],
"totalseconds":29.3,
"audiolang":[]
}
view rawgistfile1.json hosted with ❤ by GitHub
根据几次测试得出结论:
results结果中的rtsp协议结果为mp4直实地址。但是悲剧的是这个协议我们用不起来!所以只能使用上面的http的url
http://f.youku.com/player/getFlvPath/sid/134625952093737_01/st/mp4/fileid/0300200100503C2912CACF06F7B7BE321D4B39-09C7-D266-1DC7-72FBD749E129?K=74d69d0e9a11e5ab261c87ec&hd=0
再请求这个url查看response的header中type为mp4数据,而且已经经过服务器根据您当前网络环境计算返回给你一个下载速度最快的url了(据猜测)。
得到json的url中参数可根据语意猜测,但是个另参数具体用途还没有揣摩清楚,不过基本没有大碍了。以下是参数含义的猜测,不一定正确哈。
point 当前播放秒数
id 视频索引ID
pid 未知
format 可能是视频格式
language 未知
audiolang 未知
guid 未知
ver 系统版本
operator 移动信号运营商(如:中国联通)_46001(这个部分不理解)
network(当前的上网方式)
结论
把播放视频的索引id代入到api的url参数中,从服务器得到mp4视频的地址……
分享到:
相关推荐
网上的一些视频合并工具又不能很好的将这些大量的零散文件合并生成一个完整的视频。所以就自己写了个简单的工具将缓存文件合并成完整的视频,然后可以通过其他工具进行视频截取或者生成jif。这个工具可以合并视频...
优酷安卓手机版缓存的视频是分段的,并且一个视频一个目录,目录的名字是一串可读性很差的数字和字母组合,专辑(比如连续剧)也是分开存的,本工具能将这些分段存储的视频,提出并合并,处理的结果按专辑,一集一集...
优酷网视频存储架构优酷网视频存储架构
├── etc squid配置文件├── libvideoreg 视频缓存动态链接库,用来解析不同视频网站URL├── squid-2.7.STABLE9-new 打过patch后的squid-2.7.STABLE9├── squid squid-2.7.STABLE9的视频缓存patch文件└──...
打开优酷的转换器后直接拉文件进去然后在转换器用鼠标点一下再按键盘回车键就等他自动转换mp4格式,转换出来的文件在你的源文件那里!
解决土豆优酷等网站观看视频时出现上下分屏
将视频格式kux转换为MP4格式,亲测可用。 命令行执行,安全无毒。 超清的视频不支持哦。
通过HTML+CSS+JS 制作的仿优酷视频焦点轮播图,JS代买中有代码注释,新手或是初学者可根据提供的代码注释进行二次开发。
优酷文件上传sdk,在其他地方也能下载。
这家公司就是优酷网,创建于2005年,2010年11月提交赴美上市申请,拟融资1.54亿美元。以下研究报告将从优酷网的发展历程和概况、公司结构和股权结构、业务构成与模式、营收与经营状况、面临的风险以及行业状况地位等...
最简单地优酷网高清视频上传教程(图解),史上最简单。个人原创。
通过集成KindEditor,网站管理员可以让访客轻松地编辑和格式化文本,添加图片,甚至插入网络视频,极大地提升了用户在网页上的交互性。 在"kindeditor添加网络视频插件"的主题中,我们要讨论如何为KindEditor扩展...
基于ffmpeg的一个简单的视频播放器,可解码常见视频格式或网络视频流并调用SDL库进行播放,或转换为yuv视频输出。ffmpeg所需lib,dll等库文件已包含,无需重新下载ffmpeg库,适合对视频解码及ffmpeg进行学习与研究。
高仿优酷视频播放器,无需代码修改,支持播放各种格式视频以及视频横竖屏切换,进度条拖动,暂停续播等操作已经全部处理好。
优酷上面下载下来的视频格式是kux的,在其它的地方几乎不能正常播放,这种情况可以使用这款kux2mp4软件进行视频格式的转换,可以快速将kux转换为常用的mp4格式,转换速度很快,直接拖入视频文件即可进行转换。
优酷客户端如何自定义下载文件存储路径.docx
还可以完美转换(优酷、土豆、酷6网的视频格式)SWF、FLV这类的FLASH网络视频格式。还可以从视频格式中提取音频MP3、WAV、WMA、OGG、AC3、FLAC、AAC等流行的音频格式(及以上的音频格式互转)。本软件因为采用了最...
可批量重置优酷密码,可拨号换IP,密码随机或统一密码