试验解析抖音无水印视频【PHP版】

试验了网上很多抖音解析无水印视频的API,发现很多都是不稳定的。连今天要分享的这个api也是,总是那么不稳定。不过还好,总算是解析出了无水印视频。很多东西还是要自己调试一下才会知道哪里出bug了!

 

看截图先

input里输入抖音链接地址后,点击解析视频,最后生成无水印视频,封面。返回了一大串json数据

 

返回的json数据

 

调用的api

我这里是用到了这个地址:https://api.toubiec.cn/api/douy.html,

接口地址:https://api.toubiec.cn/douy

返回格式:json

请求方式:get/post

请求示例:http://api.toubiec.cn/douy?url=http://v.douyin.com/2bLNJ7/

 

方法就是:?url="从抖音复制过来的链接地址"。

简单示例:

<?php
header("Content-Type:text/html;charset=UTF-8");
$url = "http://v.douyin.com/2bLNJ7/";
$result = file_get_contents("https://api.toubiec.cn/douy?url=".$url);
$arr=json_decode($result,true);
if ($arr) {
    echo "视频作者:",$arr['nickname'];
    echo "";
    echo "视频地址:",$arr['videourl'][1];
    echo "";
    echo "图片地址:",$arr['image'];
} else {
    echo $arr['status'];
}
?>

 

以下是具体实现的代码

html模板

<div class="input-group input-group-lg" style="margin-bottom: 10px;">
    <input type="text" class="form-control link-input" id="douyin_link" placeholder="抖音视频连接粘贴到这">
          <div class="input-group-btn">
    <!--  <div class="btn-clear"></div> -->
          <button class="btn btn-default" type="button" id="jiexi">解析视频</button>
      </div>
</div>
<div style="text-align: center; display: none;" class="alert alert-danger" id="error">请输入正确的视频链接</div>
<div style="text-align: center; display: none;" id="loading" >
    <img src="img/loading.gif" style="width: 80px;height: 80px;">
</div>

<div class="thumbnail" style="display: none;" id="success">
    <div class="caption" style="padding:5px 0 0;">
        <p style="text-align: center;">
            <a target="_blank" rel="noreferrer" id="video_url" href="" download="douyin.mp4"class="btn btn-success">下载视频</a>
            <a target="_blank" rel="noreferrer" id="cover_url" href="" class="btn btn-info">视频封面</a>
        </p>
        <p style="text-align: center;">
            <a href="javascript:void(0);" class="btn btn-danger" id="rest">清空</a>
        </p>
    </div>
</div>

 

js文件,很容易,post获取到url后,传递给douyin.php文件处理,再返回一大串数据

if(douyin_link.length == 0){
    $("#error").html("请先将视频链接粘贴到上面的输入框");
    $("#error").css("display","block"); 
    $("#loading").css("display","none"); 
}else{
    var c = douyin_link.lastIndexOf("http://");
    c = (c === -1) ? douyin_link.lastIndexOf("https://") : c;
    if(c === -1){
        $("#error").html("请输入正确的视频链接");
        $("#error").css("display","block"); 
        $("#loading").css("display","none"); 
    }else{
        douyin_link = douyin_link.substr(c);
        console.log(douyin_link);
        if(parseURL(douyin_link).host=="v.douyin.com" || parseURL(douyin_link).host=="www.iesdouyin.com"){
            $.ajax({
                type: "POST",
                url: "douyin.php",
                data: {
                    url:douyin_link,                        
                },
                dataType: "json",
                success: function(data){
                    $("#loading").css("display","none"); 
                    console.log(data.time);
                    if(data.status == true){
                        $("#success").css("display","block");
                        $("#video_url").attr("href",data.videourl[1]); 
                        $("#cover_url").attr("href",data.image);

                    }else{
                        $("#error").html(data.msg);
                        $("#error").css("display","block"); 
                    }
                },

            });
        }else{
            $("#error").html("请输入正确的视频链接");
            $("#error").css("display","block"); 
            $("#loading").css("display","none"); 
        }
    }
}

 

douyin.php文件,处理后返回数据到前端

<?php
//为防止协议的快速失效,使用远程访问获取数据。

$url = "http://v.douyin.com/2bLNJ7/";
$param = ["param" => md5(123)];
$url_sign = '958364f87222c200a72414f492bf0e26';

$api_url = "https://api.toubiec.cn/douy?url=".$url;
$result = http_request($api_url, $param,$url_sign);

echo $result;

/**
 * post请求接口公共函数
 * @param  string $url   接口地址 
 * @param  array  $param 接口参数
 * @return string
 * @默认3.0系统sign
 */
function http_request($url, $param = array(), $token){

    $data = array(
        'param' => json_encode($param),
        'sign'  => get_sign($param,$token),
    );

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    $ret = curl_exec($ch);
    if($ret === false){
        return curl_error($ch);
    }
    curl_close($ch);
    return $ret;
}

/**
 * 获取签名
 * @param  array  $param 接口参数param(没有sign)
 * @param  string $token 接口密钥
 * @return string        加密字串
 */
function get_sign($param = array(), $token = ''){
    ksort($param, SORT_STRING);
    $param_str = http_build_query($param);
    $sign = md5($param_str . $token);
    return $sign;
}


?>

 

抖音无水印解析地址:http://blog.startphp.cn/douyin/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值