敲实用的视频小插件,你确定不瞄一眼吗~

哈喽,大家好,我是袁小威,好久没给大家分享好东西了,今天袁小威给大家带来一个实用小功能,那就是获取腾讯视频真实播放url,当然这个小功能还是有些许局限性,经本人实测,目前支持腾讯视频娱乐、音乐、新闻、搞笑、游戏、原创、时尚、生活、汽车、科技、财经、房产、育儿、旅游等分类栏目,对于电影、电视剧、动漫、韩剧、微电影、体育、NBA、直播、精品课等还无法获取,好了,下面进入正题吧。
首先,我们需要获取到我们所要获取的视频的vid,那么这个vid在哪呢,比如播放地址:https://v.qq.com/x/cover/x6y6l2e5a2ich2q/s0030t0b74q.html,那这个视频的vid就是“/”与“.html”之间的那串字符串,没错就是“s0030t0b74q”了,当然也可以用代码直接根据url分理出这个字符串。
这里很简单,php有自带的方法basename可以直接处理,代码如下:

$url = 'https://v.qq.com/x/cover/x6y6l2e5a2ich2q/s0030t0b74q.html';
$vid = basename($url,'.html');

这样,我们就得到我们所要的vid了。得到vid后,就可以通过如下代码愉快的获取到真实的播放url了,话不多说,直接上代码:

function getVideosInfo($vid){
   $urlString = 'https://vv.video.qq.com/getinfo?otype=json&appver=3.2.19.333&platform=11&defnpayver=1&vid='.$vid;
   $res = httpRequest($urlString,'GET');
   $jsonarr = json_decode(substr($res,13,-1),true);
   $fn_pre = $jsonarr['vl']['vi'][0]['lnk'];
   $host = $jsonarr['vl']['vi'][0]['ul']['ui'][0]['url'];
   $streams =$jsonarr['fl']['fi'];
   $seg_cnt = $jsonarr['vl']['vi'][0]['cl']['fc'];
   if ($seg_cnt == 0){
       $seg_cnt = 1;
   }
   //此处是画质  0-标清 1-高清 2-超清
   $best_quality = $streams[count($streams)-1]['name'];
   $part_format_id = $streams[count($streams)-1]['id'];
   for ($i=1;$i<($seg_cnt+1);$i++){
       $filename = $fn_pre .'.p' . $part_format_id%10000 . '.' . $i . '.mp4';
   }
   $keyApi = "https://vv.video.qq.com/getkey?otype=json&platform=11&format=" . $part_format_id . "&vid=" . $vid . "&filename=" .$filename . "&appver=3.2.19.333";
   $result = httpRequest($keyApi,'GET');
   $jsonarr1 = json_decode(substr($result,13,-1),true);
   if ($jsonarr1['key']){
       $url = $host . $filename .'?vkey=' .$jsonarr1['key'];
   }
   return $url;
}

至此,我们的功能就完成了,在这里,我们一般把获取真实url的过程封装成一个方法,然后在要用的地方直接传入vid(或者视频地址也可以,把分离获取vid部分的代码也写进封装的方法里就好了),就可以愉快的获取到想要的真实播放url了,有没有很开心呢,好了,此次分享就到这了,下次再见!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章