优酷视频真实地址解析方法
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)
我们很多老用户对于BuyVM商家还是相当熟悉的,也有翻看BuyVM相关的文章可以追溯到2014年的时候有介绍过,不过那时候介绍这个商家并不是很多,主要是因为这个商家很是刁钻。比如我们注册账户的信息是否完整,以及我们使用是否规范,甚至有其他各种问题导致我们是不能购买他们家机器的。以前你嚣张是很多人没有办法购买到其他商家的机器,那时候其他商家的机器不多。而如今,我们可选的商家比较多,你再也嚣张不起来。...
Advinservers,国外商家,公司位于新泽西州,似乎刚刚新成立不久,主要提供美国和欧洲地区VPS和独立服务器业务等。现在有几款产品优惠,高达7.5TB的存储VPS和高达3.5TBDDoS保护的美国纽约高防服务器,性价比非常不错,有兴趣的可以关注一下,并且支持Paypal付款。官方网站点击直达官方网站促销产品第一款VPS为预购,预计8月1日交付。CPU为英特尔至强 CPU(X 或 E5)。官方...
云步云怎么样?云步云是创建于2021年的品牌,主要从事出售香港vps、美国VPS、日本VPS、香港独立服务器、香港站群服务器等,机房有香港、美国、日本东京等机房,目前在售VPS线路有CN2+BGP、CN2 GIA,香港的线路也是CN2直连大陆,该公司旗下产品均采用KVM虚拟化架构。目前,云步云提供香港安畅、沙田、大浦、葵湾、将军澳、新世界等CN2机房云服务器,2核2G5M仅72.5元/月起。点击进...