您的位置:时间博客>PHP>PHP实现抖音视频无水印解析

PHP实现抖音视频无水印解析

打开分享的链接查看源代码找到 video_id 那就是视频地址了

3d043e3dd667009214e2d9a51cc49441.png

只需要取vodeo_id的参数;

抖音无水印播放接口:

https://aweme.snssdk.com/aweme/v1/play/?video_id=vodeo_id&line=0

通过获取到的vodeo_id 凑成完整播放链接:

https://aweme.snssdk.com/aweme/v1/play/?video_id=v0200fc10000bepclh6bn5vcg64f2log&line=0

这样就得到了无水印的原视频播放地址,不过每次都要这样去找vodeo_id 也太麻烦了。

这步骤交由程序到完成吧,上PHP实现的源码:

public function index()
{
    $url = isset($this->param['url']) ? $this->param['url'] : '';
    if (empty($url)) {
        $this->jump([404, '链接为空', '']);
    }
    $str = $this->CurlRequest($url, 1);
    preg_match("/video_id=(.*?)&/i", $str, $vid);
    if (!isset($vid[1]) || empty($vid[1])) {
        $this->jump([404, '解析失败', '']);
    }
    $playUrl = 'https://aweme.snssdk.com/aweme/v1/play/?video_id=' . $vid[1] . '&line=0';
    $str = $this->CurlRequest($playUrl, 0);
    preg_match('#<a href="(.*?)">#', $str, $arr);
    if (!isset($arr[1]) || empty($arr[1])) {
        $this->jump([403, '解析失败', '']);
    }
    $VideoUrl = str_replace('http://', 'https://', $arr[1]);

    header('Access-Control-Allow-Origin: *');
    header('Content-Type:application/json; charset=utf-8');
    $res = ['code' => 0, 'msg' => '解析成功', 'data' => $VideoUrl];

    //不转义反斜杠,中文不转为unicode
    die(json_encode($res, 320));
}

protected function CurlRequest($url, $foll = 0)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url); //访问的url
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //完全静默
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //忽略https
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //忽略https
    curl_setopt($ch, CURLOPT_HTTPHEADER, ["user-agent: Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25"]); //UA
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, $foll); //默认为$foll=0,大概意思就是对照模块网页访问的禁止301 302 跳转。
    $output = curl_exec($ch); //获取内容
    curl_close($ch); //关闭
    return $output; //返回
}


最近有人反映无法解析;

原因是抖音官方做了调整,原来的 vodeo_id 改成了 s_vid,接口地址也变了;

现在已修复无法解析问题;

更新时间:2019年6月2日15:6:37

在线的成品:www.timeblog.cn/tool/douyin

转载请注明本文标题和链接:《 PHP实现抖音视频无水印解析

相关推荐

网友评论 3

未登陆 表情
Ctrl+Enter快速提交
  1. #2

    为什么去完了还是有水印??

    MT 3年前 (2020-04-27) 回复
    • @MT:接口失效啦~

      admin 3年前 (2020-04-30) 回复
  2. #1

    你好博主,接口地址是什么了?

    野猪佩奇 4年前 (2019-06-12) 回复