腾讯视频地址转小程序视频地址的方法

2018年05月11日 3,547 次阅读 3 条评论 218 人点赞

由于转换的视频播放地址有时效性,所以作者采用打开视频详情页实时获取小程序播放的地址,如果您有更好的解决办法可以交流交流哦

/**
 * 腾讯视频地址转小程序视频地址
 * 由于转换的视频播放地址有时效性,所以作者采用打开视频详情页实时获取小程序播放的地址,如果您有更好的解决办法可以交流交流哦
 * @param string $s_url  腾讯视频地址:https://v.qq.com/x/page/t0648mo4mzy.html
 * @return array
 */
static public function transfer($s_url)
{
    $fileName = pathinfo($s_url);
    $vids = $fileName['filename'];
    $url="http://vv.video.qq.com/getinfo?vids={$vids}&platform=101001&charge=0&otype=json";
    $res = httpRequest($url,'get');
    $res = str_replace("QZOutputJson=","",$res);
    $res =  substr($res,0,strlen($res)-1);
    $res = json_decode($res,true);
    $arr = [];
    if($res['dltype'] == 1){
        $urlArr  = $res['vl']['vi'][0]['ul']['ui'];
        $urlData = $urlArr[mt_rand(0,count($urlArr)-1)];
        $urlData = $urlData['url'];
        $fn = $res['vl']['vi'][0]['fn'];
        $fvkey = $res['vl']['vi'][0]['fvkey'];
        $title = $res['vl']['vi'][0]['ti'];
        $arr['title'] = $title;
        $arr['url'] = $urlData.$fn."?vkey=".$fvkey;
    }
    return $arr;
}

体验地址:

讲梦想、讲奋斗可以,前提是钱要给够。

文章评论(3

  • 山上逮兔子Lv 1

    httpRequest 方法能分享出来吗

    #12018-08-20 14:33
    • 阳阳博主

      @山上逮兔子

      /**
       * CURL请求
       * @param string $url 请求url地址
       * @param string $method 请求方法 get post
       * @param null $postfields post数据数组
       * @param array $headers 请求header信息
       * @param bool|false $debug 调试开启 默认false
       * @return mixed
       */
      function httpRequest($url, $method, $postfields = null, $headers = array(), $debug = false)
      {
          $method = strtoupper($method);
          $ci = curl_init();
          /* Curl settings */
          curl_setopt($ci, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
          curl_setopt($ci, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0");
          curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 60); /* 在发起连接前等待的时间,如果设置为0,则无限等待 */
          curl_setopt($ci, CURLOPT_TIMEOUT, 7); /* 设置cURL允许执行的最长秒数 */
          curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);
          switch ($method) {
              case "POST":
                  curl_setopt($ci, CURLOPT_POST, true);
                  if (!empty($postfields)) {
                      $tmpdatastr = is_array($postfields) ? http_build_query($postfields) : $postfields;
                      curl_setopt($ci, CURLOPT_POSTFIELDS, $tmpdatastr);
                  }
                  break;
              default:
                  curl_setopt($ci, CURLOPT_CUSTOMREQUEST, $method); /* //设置请求方式 */
                  break;
          }
          $ssl = preg_match('/^https:\/\//i', $url) ? TRUE : FALSE;
          curl_setopt($ci, CURLOPT_URL, $url);
          if ($ssl) {
              curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts
              curl_setopt($ci, CURLOPT_SSL_VERIFYHOST, FALSE); // 不从证书中检查SSL加密算法是否存在
          }
          //curl_setopt($ci, CURLOPT_HEADER, true); /*启用时会将头文件的信息作为数据流输出*/
          curl_setopt($ci, CURLOPT_FOLLOWLOCATION, 1);
          curl_setopt($ci, CURLOPT_MAXREDIRS, 2);/*指定最多的HTTP重定向的数量,这个选项是和CURLOPT_FOLLOWLOCATION一起使用的*/
          curl_setopt($ci, CURLOPT_HTTPHEADER, $headers);
          curl_setopt($ci, CURLINFO_HEADER_OUT, true);
          /*curl_setopt($ci, CURLOPT_COOKIE, $Cookiestr); * *COOKIE带过去** */
          $response = curl_exec($ci);
          $requestinfo = curl_getinfo($ci);
          $http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);
          if ($debug) {
              echo "=====post data======\r\n";
              var_dump($postfields);
              echo "=====info===== \r\n";
              print_r($requestinfo);
              echo "=====response=====\r\n";
              print_r($response);
          }
          curl_close($ci);
          return $response;
          //return array($http_code, $response,$requestinfo);
      }
      

      2018-08-20 14:38
  • 接收回复邮件通知
    非注册会员初次评论需要审核,审核时间(09:00-18:00),请耐心等待...