腾讯、优酷视频地址解析(转)
2014-04-15 22:22
323 查看
感谢原作者:yangfanaicc
本文转载自:http://blog.csdn.net/yangfanacc/article/details/21242405
各大视频网站的视频地址在手机或者个人网站上面播放有时是不固定的。比方说,你用http://www.flvxz.com这样的第三方解析出来的网址,可能过一天就不能用了。对于m3u8格式的没有太多的问题,尤其是mp4格式,很快就会变动,没有实用效果。所以如何才能够自己解析出各大视频网站的真实地址便是一个很重要的问题。下面给出方案:
本人做的是IOS的视频地址解析,但是在不同的语言之间是没有界限的。我先把IOS的代码贴在这里,然后介绍其他的语言的办法:
[objc] view
plaincopyprint?
//得到腾讯的视频真实url
- (NSString *)getQQUrl:(NSString *)qqVideoUrl {
NSString *vid = nil;
NSString *targetUrl = nil;
NSRange vidRange = [qqVideoUrl rangeOfString:@"vid="];
if (vidRange.location > 0 && vidRange.location < 10000) {
vid = [qqVideoUrl substringWithRange:NSMakeRange(vidRange.location + 4, 11)];
} else {
int loc=5;
for(int i=0;i<qqVideoUrl.length;i++){
NSString *s = [qqVideoUrl substringWithRange:NSMakeRange(i, 1)];
if([s isEqualToString:@"/"])
loc=i;
}
vid=[qqVideoUrl substringWithRange:NSMakeRange(loc+1,qqVideoUrl.length-6-loc)];
NSLog(@"**********************对不起,您输入的网址没有vid标志,目前正在url地址中匹配vid");
}
NSString *requestUrl = [NSString stringWithFormat:
@"http://vv.video.qq.com/geturl?vid=%@&otype=xml&platform=1&ran=0%%2E9652906153351068", vid];
NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:requestUrl]];
GDataXMLDocument *xmlDoc = [[GDataXMLDocument alloc] initWithData:data options:0 error:nil];
GDataXMLElement *rootElement = [xmlDoc rootElement];
NSArray *first = [rootElement elementsForName:@"vd"];
if (first.count > 0) {
NSArray *second = [[first objectAtIndex:0] elementsForName:@"vi"];
if (second.count > 0) {
NSArray *third = [[second objectAtIndex:0] elementsForName:@"url"];
if (third.count > 0) {
targetUrl = [[third objectAtIndex:0] stringValue];
}
}
}
return targetUrl;
}
[objc] view
plaincopyprint?
//得到优酷的视频真实url
- (NSString *)getYouKuUrl:(NSString *)qqVideoUrl {
NSString *targetUrl = nil;
NSRange vidRange = [qqVideoUrl rangeOfString:@"id_"];
if (vidRange.location > 0 && vidRange.location < 10000) {
targetUrl = [qqVideoUrl substringWithRange:NSMakeRange(vidRange.location + 3, 13)];
} else {
NSLog(@"**********************对不起,您输入的网址没有'id_'的优酷标志,请确认");
}
targetUrl = [NSString stringWithFormat:@"http://v.youku.com/player/getRealM3U8/vid/%@/type//video.m3u8", targetUrl];
return targetUrl;
}
我这里选了三个大型视频平台,分别是腾讯,优酷还有乐视。但是最后只是解析出来了腾讯和优酷,乐视搞死搞不出来,要是有人有办法,还请赐教啊,万谢先。
对于优酷,还是很简单的,就是字符串的拼接,没有特别的麻烦事。优酷的地址一般都是这样的:http://v.youku.com/v_show/id_XNjg0ODM3NTcy.html
对于id_后面的那个就是重点,就是你当前播放视频的视频id了,也是全球唯一的一个了。然后进行一下拼接就好了。拼接方法如下:
[objc] view
plaincopyprint?
http://v.youku.com/player/getRealM3U8/vid/+“xxxxxxxxxxx”+/type//video.m3u8
就是把视频的id放在上面的xxx的位置,然后就可以用浏览器或者手机上面的播放器播放了。
对于腾讯的,一开始我使用了复杂的办法,用了很长的时间最后做出来的还是有问题,因为有很多因素需要考虑。在最后我找到了一个非常简单的办法,让我十分的开心。那就是这样:
(说明在前:腾讯的视频包括所有平台的视频都是有一个全球唯一的id的,但是腾讯的视频id有的很明显,有的不明显,如下所示:1、http://v.qq.com/cover/5/5skfz788e7nc3m9.html?vid=j0126ma9sex
2、http://v.qq.com/cover/o/o4bmve7g33cqqr9.html,其中第一个直接给出了id,第二个需要自己查看网页的源代码才能够得到,自己想办法了,我推荐一个网址在这里:http://www.cnblogs.com/bobzhou/archive/2013/02/20/qq.html)
拿到视频的id之后便是拼接成一个url然后访问,服务器会返回一个xml文档回来,一般返回来的会有四个链接,当然了,每一个都是可以使用的,我使用的是第一个,解析的方便了。(只是url的请求访问以及返回来的xml数据的xml解析自己知道最好嘛,不知道,自己想办法喽),这样便是又拿到了腾讯的真是地址。
重复上面的一句话,乐视的如何都是拿不到,但是上面给出的飞驴网站确是可以拿到,我很奇怪,网上的方法都是找遍了还是没有办法突破乐视,我觉得是乐视临时加强了自己网站的防止偷链等等其他因素的能力。要是有人拿到了,不放留言在下,好让我知道,谢谢先,
1楼 暖阳浅夏 2014-03-17 14:20发表 [回复] [引用] [举报]
拼接URL的地方你说的不够详细,这是个后门URL,帮你补充一下,腾讯后门格式为:http://vv.video.qq.com/geturl?vid="+ id + "&otype=xml&platform=1&ran=0%2E9652906153351068.
优酷后门格式为:http://v.youku.com/player/getPlayList/VideoIDS/"+id
感谢原作者:yangfanaicc
本文转载自:http://blog.csdn.net/yangfanacc/article/details/21242405
本文转载自:http://blog.csdn.net/yangfanacc/article/details/21242405
各大视频网站的视频地址在手机或者个人网站上面播放有时是不固定的。比方说,你用http://www.flvxz.com这样的第三方解析出来的网址,可能过一天就不能用了。对于m3u8格式的没有太多的问题,尤其是mp4格式,很快就会变动,没有实用效果。所以如何才能够自己解析出各大视频网站的真实地址便是一个很重要的问题。下面给出方案:
本人做的是IOS的视频地址解析,但是在不同的语言之间是没有界限的。我先把IOS的代码贴在这里,然后介绍其他的语言的办法:
[objc] view
plaincopyprint?
//得到腾讯的视频真实url
- (NSString *)getQQUrl:(NSString *)qqVideoUrl {
NSString *vid = nil;
NSString *targetUrl = nil;
NSRange vidRange = [qqVideoUrl rangeOfString:@"vid="];
if (vidRange.location > 0 && vidRange.location < 10000) {
vid = [qqVideoUrl substringWithRange:NSMakeRange(vidRange.location + 4, 11)];
} else {
int loc=5;
for(int i=0;i<qqVideoUrl.length;i++){
NSString *s = [qqVideoUrl substringWithRange:NSMakeRange(i, 1)];
if([s isEqualToString:@"/"])
loc=i;
}
vid=[qqVideoUrl substringWithRange:NSMakeRange(loc+1,qqVideoUrl.length-6-loc)];
NSLog(@"**********************对不起,您输入的网址没有vid标志,目前正在url地址中匹配vid");
}
NSString *requestUrl = [NSString stringWithFormat:
@"http://vv.video.qq.com/geturl?vid=%@&otype=xml&platform=1&ran=0%%2E9652906153351068", vid];
NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:requestUrl]];
GDataXMLDocument *xmlDoc = [[GDataXMLDocument alloc] initWithData:data options:0 error:nil];
GDataXMLElement *rootElement = [xmlDoc rootElement];
NSArray *first = [rootElement elementsForName:@"vd"];
if (first.count > 0) {
NSArray *second = [[first objectAtIndex:0] elementsForName:@"vi"];
if (second.count > 0) {
NSArray *third = [[second objectAtIndex:0] elementsForName:@"url"];
if (third.count > 0) {
targetUrl = [[third objectAtIndex:0] stringValue];
}
}
}
return targetUrl;
}
[objc] view
plaincopyprint?
//得到优酷的视频真实url
- (NSString *)getYouKuUrl:(NSString *)qqVideoUrl {
NSString *targetUrl = nil;
NSRange vidRange = [qqVideoUrl rangeOfString:@"id_"];
if (vidRange.location > 0 && vidRange.location < 10000) {
targetUrl = [qqVideoUrl substringWithRange:NSMakeRange(vidRange.location + 3, 13)];
} else {
NSLog(@"**********************对不起,您输入的网址没有'id_'的优酷标志,请确认");
}
targetUrl = [NSString stringWithFormat:@"http://v.youku.com/player/getRealM3U8/vid/%@/type//video.m3u8", targetUrl];
return targetUrl;
}
我这里选了三个大型视频平台,分别是腾讯,优酷还有乐视。但是最后只是解析出来了腾讯和优酷,乐视搞死搞不出来,要是有人有办法,还请赐教啊,万谢先。
对于优酷,还是很简单的,就是字符串的拼接,没有特别的麻烦事。优酷的地址一般都是这样的:http://v.youku.com/v_show/id_XNjg0ODM3NTcy.html
对于id_后面的那个就是重点,就是你当前播放视频的视频id了,也是全球唯一的一个了。然后进行一下拼接就好了。拼接方法如下:
[objc] view
plaincopyprint?
http://v.youku.com/player/getRealM3U8/vid/+“xxxxxxxxxxx”+/type//video.m3u8
就是把视频的id放在上面的xxx的位置,然后就可以用浏览器或者手机上面的播放器播放了。
对于腾讯的,一开始我使用了复杂的办法,用了很长的时间最后做出来的还是有问题,因为有很多因素需要考虑。在最后我找到了一个非常简单的办法,让我十分的开心。那就是这样:
(说明在前:腾讯的视频包括所有平台的视频都是有一个全球唯一的id的,但是腾讯的视频id有的很明显,有的不明显,如下所示:1、http://v.qq.com/cover/5/5skfz788e7nc3m9.html?vid=j0126ma9sex
2、http://v.qq.com/cover/o/o4bmve7g33cqqr9.html,其中第一个直接给出了id,第二个需要自己查看网页的源代码才能够得到,自己想办法了,我推荐一个网址在这里:http://www.cnblogs.com/bobzhou/archive/2013/02/20/qq.html)
拿到视频的id之后便是拼接成一个url然后访问,服务器会返回一个xml文档回来,一般返回来的会有四个链接,当然了,每一个都是可以使用的,我使用的是第一个,解析的方便了。(只是url的请求访问以及返回来的xml数据的xml解析自己知道最好嘛,不知道,自己想办法喽),这样便是又拿到了腾讯的真是地址。
重复上面的一句话,乐视的如何都是拿不到,但是上面给出的飞驴网站确是可以拿到,我很奇怪,网上的方法都是找遍了还是没有办法突破乐视,我觉得是乐视临时加强了自己网站的防止偷链等等其他因素的能力。要是有人拿到了,不放留言在下,好让我知道,谢谢先,
1楼 暖阳浅夏 2014-03-17 14:20发表 [回复] [引用] [举报]
拼接URL的地方你说的不够详细,这是个后门URL,帮你补充一下,腾讯后门格式为:http://vv.video.qq.com/geturl?vid="+ id + "&otype=xml&platform=1&ran=0%2E9652906153351068.
优酷后门格式为:http://v.youku.com/player/getPlayList/VideoIDS/"+id
感谢原作者:yangfanaicc
本文转载自:http://blog.csdn.net/yangfanacc/article/details/21242405
相关文章推荐
- 腾讯、优酷视频地址解析
- 优酷真实视频地址解析——2014年10月7日
- 【转】Java 解析优酷地址获取视频真实地址
- 查找各大视频网站真实视频地址方法(乐视优酷会员腾讯56酷6pptv激动网)
- java实现优酷视频地址解析示例代码分享
- 优酷真实视频地址解析
- 优酷真实视频地址解析破解思路,含破解方法(更新至2016-2-28)
- 优酷视频真实地址解析
- 优酷真实视频地址解析
- 优酷视频真实地址解析
- 优酷真实视频地址解析
- 优酷视频地址解析——真实地址(flash地址)
- 优酷视频真实地址解析
- 优酷真实视频地址解析——2014年10月7日
- 优酷视频真实地址解析
- 腾讯视频真实地址解析
- C#实现的优酷真实视频地址解析功能(2014新算法)
- 优酷真实视频地址解析——2016年9月20日 优酷视频下载工具
- 优酷真实视频地址解析
- 优酷 超清 高清 标清 视频地址 解析。