敲實用的視頻小插件,你確定不瞄一眼嗎~

哈嘍,大家好,我是袁小威,好久沒給大家分享好東西了,今天袁小威給大家帶來一個實用小功能,那就是獲取騰訊視頻真實播放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了,有沒有很開心呢,好了,此次分享就到這了,下次再見!

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