优酷视频真实地址解析方法
1. 先来看一下解析后的视频地址http://f.youku.c om/player/getF lvP ath/s id/13726418137931150_00/s t/flv/file id/0300021400518D5C5F52F8055EEB3EDF07F978-82F2-09F2-FC7D-87DFFCAC19CA?K=fcb6411a98ffbacc2411743b&hd=0http://f.youku.c om/player/getF lvP ath/s id/13726418137931150_01/s t/flv/file id/0300021401518D5C5F52F8055EEB3EDF07F978-82F2-09F2-FC7D-87DFFCAC19CA?K=b7ab4f7664a9e35c2828b9e1&hd=0http://f.youku.c om/player/getF lvP ath/s id/13726419939844902_00/s t/mp4/fileid/0300081300518D7ABE52F8055EEB3 EDF07F978-82F2-09F2-FC7D-87DFFCAC19CA?K=d12ee0b71ab69d13261d170d&hd=1
以上三段红色部分分别代表sid、 fileid和key。
我们来分析一下这个地址除了固定的部分以外整个地址由sid、 fileid和key三部分组成下面我们逐一来分析如何解析这三个值。
而蓝色的部分表示视频文件的序号16进制如果一个视频文件被分为11部分那只要把蓝色部分改为从00到0A就可以了。hd=0:标清 hd=1:高清 hd=2:超清
2. 普通的youku地址 http://v.youku.com/v_show/id_XNTc2MDc3OTE2.html
3. 把其中的红色部分复制出来拼在http://v.youku.c om/player/getPlayList/Vid eoID S/
如下http://v.youku.c om/player/getPlayList/VideoIDS/XNTc2 M D c3OTE 2
获取到jason数据如下
{
"data": [
"http://g2.ykimg.com/1100401F4651CC00254D140817BFFF0F6FF277-D229-9A0A-A8BD-6B73BE3BECDB",
"seed":7338,
"tags": [
"\u5965\u5229\u5965",
"\u4eb2\u5b50\u4e00\u523b"
],
"categories": "92",
"videoid": "144019479",
"vidEncoded": "XNTc2MDc3OTE2",
"l i st": [
"vid": "144019479",
"vidEncoded": "XNTc2MDc3OTE2",
"title":
"\u5965\u5229\u5965\u4eb2\u5b503\u53f7\u4f5c\u54c1-\u4e00\u8d77\u770b\u4e16\u754c",
"vv": "8784960"
},
"vid": "142862435",
"vidEncoded": "XNTcxNDQ5NzQw",
"title":
"\u5965\u5229\u5965\u4eb2\u5b502\u53f7\u4f5c\u54c1-\u7238\u7238\u7684\u5305\u5b50\u94fa",
"vv": "330270"
},
"vid": "140904104",
"vidEncoded": "XNTYzNjE2NDE2",
"title":
"\u5965\u5229\u5965\u4eb2\u5b501\u53f7\u4f5c\u54c1-\u6447\u6eda\u7ae5\u5e74",
"vv": "15326162"
},
"vid": "135072168",
"vidEncoded": "XNTQwMjg4Njcy",
"title":
"\u51af\u5c0f\u521a\u4eb2\u5b50\u5927\u4f5c-\u7236\u4eb2\u7bc7",
"vv": "1343811"
},
"vid": "138357528",
"vidEncoded": "XNTUzNDMwMTEy",
"title":
"\u51af\u5c0f\u521a\u4eb2\u5b50\u5927\u4f5c-\u6bcd\u4eb2\u7bc7",
"vv": "86241"
}
],
"l ist_pre": {},
"vid": "142862435",
"vidEncoded": "XNTcxNDQ5NzQw",
"title":
"\u5965\u5229\u5965\u4eb2\u5b502\u53f7\u4f5c\u54c1-\u7238\u7238\u7684\u5305\u5b50\u94fa",
"vv": "330270"
},
"username": "\u5965\u5229\u5965\u7ae5\u771f\u7a7a\u95f4",
"userid": "135774207",
"title":
"\u5965\u5229\u5965\u4eb2\u5b503\u53f7\u4f5c\u54c1-\u4e00\u8d77\u770b\u4e16\u754c",
"ts": "vszuWTDrH Mg5-yjSAWna*I8",
"tsup": "vszqYTPrHMg5-yjSAlHe*I8",
"key1": "b14bd126",
"key2": "81491ad0441781ce",
"showid": "278338",
"showid_encode": "e852b1b8c35811e296ac",
"paid":0,
"paid_type": "",
"show_videotype": 1,
},
"dvd": {
"notsharing": "0"
},
"seconds": "165.73",
"streamfi leids": {
"hd2":
"23*27*23*23*23*50*23*50*23*23*6*50*5*5*23*23*43*49*20*23*44*44*23*47*50*43
*49*44*44*44*23*25*61*49*53*9*44*44*14*20*27*25*23*14*5*61*53*23*14*43*25*27*44*14*25*6*34*25*53*44*34*42*47*9*25*50*",
"mp4":
"23*27*23*23*23*47*23*50*23*23*6*50*5*49*44*44*50*50*20*23*44*44*23*47*50*43*49*44*44*44*23*25*61*49*53*9*44*44*14*20*27*25*23*14*5*61*53*23*14*43*25*27*44*14*25*6*34*25*53*44*34*42*47*9*25*50*",
"flv":
"23*27*23*23*23*20*23*50*23*23*6*50*5*49*44*25*42*49*20*23*44*44*23*47*50*43*49*44*44*44*23*25*61*49*53*9*44*44*14*20*27*25*23*14*5*61*53*23*14*43*25*27*44*14*25*6*34*25*53*44*34*42*47*9*25*50*"
},
"segs": {
"hd2": [
{
"size": "25126208",
"seconds": "166",
"k": "f8c709b809a88c3b261d1786",
"k2": "1df409038016e8e45"
}
],
"mp4": [
{
"size": "11458293",
"seconds": "166",
"k": "6fcdf09b5aa57d1324117483",
"k2": "18778cb38988dc4e9"
}
],
"flv": [
{
",
"seconds": "166",
"k": "5a6d3f1f3a7ea4a124117483",
"k2": "1fd314c80a6f35b58"
}
]
},
"streamsizes": {
"hd2": "25126208","mp4": "11458293","flv": "5965281"},
"stream_ids": {
"hd2": "143315903","mp4": "143314458","flv": "143310233"},
"strea mlogos": {
"hd2":0,
"mp4":0,
"flv":0
},
"streamtypes": [
],
"streamtypes_o": [
"hd2",
"flvhd",
"mp4"
]
}
],
"user": {
"id":0
},
"control ler": {
"search_count": true,
"mp4_restrict": 1,
"stream_mode":2,
"video_capture": true,
"hd3_enabled": false,
"area_code":440400,
"dma_code":4134,
"continuous": 1,
"playmode": "show",
"circle": fa lse,
"tsflag": fa lse,
"other_disa ble": fa lse,
"share_disabled": false,
"download_disabled": false,
"pc_disabled": false,
"pad_disabled": false,
"mobi le_disabled": false,
"tv_disabled": false
}
}
4. 解析jason数据
通过jason数据获取sid、 fileid和key值方法如下
获取sid
/*
获取sid根据当前时间自动计算
*/private static String getSid( ) {
String sid = new Date( ) .getTime( ) + ""
+ (1000 + new Random( ) .nextInt(999) ) + "" ;
// + (new Random( ) .nextInt(9000) + 1000) ;return sid;
}
获取fileid
/*
获取fileid
参数fileid seed为上面提到的json对象中提供。
例子中的seed 7338fileId有3个值分别是flv标清在链接中的参数为hd=0
23*27*23*23*23*20*23*50*23*23*6*50*5*49*44*25*42*49*20*23*44*44*23*47
*50*43*49*44*44*44*23*25*61*49*53*9*44*44*14*20*27*25*23*14*5*61*53*23*14*43*25*27*44*14*25*6*34*25*53*44*34*42*47*9*25*50*mp 4高清在链接中的参数为hd=1
23*27*23*23*23*47*23*50*23*23*6*50*5*49*44*44*50*50*20*23*44*44*23*47
*50*43*49*44*44*44*23*25*61*49*53*9*44*44*14*20*27*25*23*14*5*61*53*23*14*43*25*27*44*14*25*6*34*25*53*44*34*42*47*9*25*50*hd2超清在链接中的参数为hd=2
23*27*23*23*23*50*23*50*23*23*6*50*5*5*23*23*43*49*20*23*44*44*23
*47*50*43*49*44*44*44*23*25*61*49*53*9*44*44*14*20*27*25*23*14*5*61*53*23*14*43*25*27*44*14*25*6*34*25*53*44*34*42*47*9*25*50*
*/private static String getFileId(String fileId, int seed) {
String mixed = getMixString(seed) ;
String[ ] ids = fileId.split("\\*") ;
String realId = "";for (int i = 0; i < ids.length; ++i) {int idx = Integer.parseInt(ids [i] ) ;realId += mixed.charAt(idx) ;
}return realId;
}private static String getMixString(int seed) {
String mixed = "";
String source =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/\\: ._-1234567890";int len = source.length( ) ;for (int i = 0; i < len; ++i) {seed = (seed * 211 + 30031) % 65536;int index = (int) (seed / 65536d * source.length( ) ) ;char c = source.charAt(index) ;mixed = mixed + c;source = source.replace(c + "", "") ;
}return mixed;
}
获取key值
直接从jason数据中获取到
标清key "5a6d3f1f3a7ea4a124117483"
高清key "6fcdf09b5aa57d1324117483"
超清key "f8c709b809a88c3b261d1786"
执行上面的程序获取到的数据如下sid 13727290697801316fileid(hd0)
030002010051CBF9AB20FF0817BFFF09DB46FF-2390-CD40-793F-95E94FEA8691fileid(hd1)
030008010051CBFF1120FF0817BFFF09DB46FF-2390-CD40-793F-95E94FEA8691fileid(hd2)
这两天Linode发布了十八周年的博文和邮件,回顾了过去取得的成绩和对未来的展望。作为一家运营18年的VPS主机商,Linode无疑是有一些可取之处的,商家提供基于KVM架构的VPS主机,支持随时删除(按小时计费),可选包括美国、英国、新加坡、日本、印度、加拿大、德国等全球十多个数据中心,所有机器提供高出入网带宽,最低仅$5/月($0.0075/小时)。This month marks Linod...
Hostiger商家我们可能以前也是有见过的,以前他们的域名是Hostigger,后来进行微调后包装成现在的。而且推出Columbus Day哥伦布日优惠活动,提供全场的VPS主机首月7折月付2.79美元起的优惠。这里我们普及一下基础知识,Columbus Day ,即为每年10月12日,是一些美洲国家的节日,纪念克里斯托弗·哥伦布在北美登陆,为美国的联邦假日。Hostiger 商家是一个成立于2...
昔日数据怎么样?昔日数据是一个来自国内服务器销售商,成立于2020年底,主要销售国内海外云服务器,目前有国内湖北十堰云服务器和香港hkbn云服务器 采用KVM虚拟化技术构架,湖北十堰机房10M带宽月付19元起;香港HKBN,月付12元起; 此次夏日活动全部首月5折促销,有需要的可以关注一下。点击进入:昔日数据官方网站地址昔日数据优惠码:优惠码: XR2021 全场通用(活动持续半个月 2021/7...