最近学习很热衷于学习解析视频,本次解析的是腾讯视频,根据查阅相关资料,目前已经实现腾讯视频真实地址解析,并且能够下载腾讯视频。
与其他视频解析原理一样,先页面找参数然后调用接口,再拼装真实URL地址。
腾讯视频解析的第一步是拿到vid,就是url地址的最后一段,例如下面的URL:
https://v.qq.com/x/cover/m441e3rjq9kwpsc/h0025x3mn7z.html
上面的vid则是h0025x3mn7z,就是介于最后一个/到.html之间的字符。这种比较简单
然后通过vid获取api信息,调用接口如下:
String apiUrl="http://vv.video.qq.com/getinfo?vids="+vid+"&platform=101001&charge=0&otype=json";
返回数据如下面:
QZOutputJson={"dltype":1,"em":....省略
};
需要截取下json,也就是QZOutputJson=到最后的分号之间的字符串。
通过json解析获取到fvkey、fn、url
//解析fn
String fn = JsonPath.read(jsonData, "$.vl.vi[0].fn");
//解析fvkey
String fvkey = JsonPath.read(jsonData, "$.vl.vi[0].fvkey");
//解析url
String url = JsonPath.read(jsonData, "$.vl.vi[0].ul.ui[0].url");
最后就是拼接真实url地址
String realPath=url+fn+"?vkey="+fvkey;
最后我们运行上面的代码得到真实地址,如下图所示:
点击path,浏览器就打开了:
https://www.leftso.com/article/846.html