腾讯视频播放页地址怎么得到视频的真实地址

以腾讯视频播放页地址https://v.qq.com/x/cover/0sdn...为例,通过前端技术如何得到视频播放列表vid,如何解析得到视频的真实地址,

阅读 14.1k
2 个回答

前一阵子写的,可以试试

function get_url($url)
{
    $ch=curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不验证证书
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    $result=curl_exec($ch);
    $code=curl_getinfo($ch,CURLINFO_HTTP_CODE);
    if($code!='404' && $result)
    {
        return $result;
    }
    curl_close($ch);
}
function get_tc_video($url)
{
    if(!$url) { return false; }
    $sp = explode('/', $url);
    $code = end($sp);
    $code = explode('.', $code)[0];
    $res = get_url('http://vv.video.qq.com/getinfo?otype=json&platform=11001&vid='.$code);
    $res = mb_substr(mb_strcut($res, 13),0,-1);
    $res = json_decode($res, true);
    $u = $res['vl']['vi'][0];
    $p0 = $u['ul']['ui'][0]['url'];
    $p1 = $u['fn'];
    $p2 = $u['fvkey'];
    return $p0.$p1.'?vkey='.$p2;  
}

不过这个对视频集的地址无效,视频集的话$code也就是vid的获的需要爬页面里的vid,而不是地址里的vid,稍微改一下就好了。但是比较麻烦的是视频集很多是只有试看,也就是5分钟限制,用这个方法获的的地址是只有5分钟长度的视频

document.querySelector('.mod_episode').querySelectorAll('.item').forEach(item=>{console.log(item.id)})

获取id

clipboard.png

视频真实地址需要分析它的js相关代码了

不过可以通过开发工具找到相应的地址

clipboard.png

可以研究下这个请求

https://h5vv.video.qq.com/get...

clipboard.png

http://183.131.48.147/vlive.q...

看这个里面的内容和真实的视频地址的前面的url是不是一样的,剩下的就是需要研究js,怎么把真是的地址拼出来了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题