优酷视频真实地址解析方法
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)
最近很多网站都遭受到了伪墙/假墙攻击,导致网站流量大跌,间歇性打不开网站。这是一种新型的攻击方式,攻击者利用GWF规则漏洞,使用国内服务器绑定host的方式来触发GWF的自动过滤机制,造成GWF暂时性屏蔽你的网站和服务器IP(大概15分钟左右),使你的网站在国内无法打开,如果攻击请求不断,那么你的网站就会是一个一直无法正常访问的状态。常规解决办法:1,快速备案后使用国内服务器,2,使用国内免备案服...
IT狗为用户提供 在线ping、在线tcping、在线路由追踪、域名被墙检测、域名被污染检测 等实用工具。【工具地址】https://www.itdog.cn/【工具特色】1、目前同类网站中,在线ping 仅支持1次或少量次数的测试,无法客观的展现目标服务器一段时间的网络状况,IT狗Ping工具可持续的进行一段时间的ping测试,并生成更为直观的网络质量柱状图,让用户更容易掌握服务器在各地区、各线...
关于HostYun主机商在之前也有几次分享,这个前身是我们可能熟悉的小众的HostShare商家,主要就是提供廉价主机,那时候官方还声称选择这个品牌的机器不要用于正式生产项目,如今这个品牌重新转变成Hostyun。目前提供的VPS主机包括KVM和XEN架构,数据中心可选日本、韩国、香港和美国的多个地区机房,电信双程CN2 GIA线路,香港和日本机房,均为国内直连线路,访问质量不错。今天和大家分享下...