抖音短视频无水印解析分析

通过抓包得到数据地址,至于怎么抓包可以自行搜索,有很多。

https://is.snssdk.com/bds/cell/detail/?cell_type=1&aid=1319&app_name=super&cell_id=7008096407127117070

那么数据接口找出来了,我们直接上代码。

首先要获取cell_id对应的id

id是短链接跳转后截取到的

如链接:https://v.douyin.com/dB4yyd8/

$loc = get_headers($url, true)['Location'];

preg_match('/item\/(.*)\?/', $loc, $id);

通过以上我们就获取到了id

接下拼接连接curl请求获取数据

$getApi = 'https://is.snssdk.com/bds/cell/detail/?cell_type=1&aid=1319&app_name=super&cell_id='.$id[1];

$arr = json_decode($this->curl($getApi), true);

会返回Json数据,把我们需要的数据放到数组中

【这里要注意】

此时返回的视频链接是有水印的,我们要获取的是无水印的,那么还需要将"playwm"替换成"play"

$arr = [

  'name' => $arr['item_list'][0]['author']['nickname'],//作者

  'title'  => $arr['item_list'][0]['share_info']['share_title'],//标题

  'cover'  => $arr['item_list'][0]['video']['origin_cover']['url_list'][0],//封面

  'video'    => str_replace('playwm', 'play', $arr['item_list'][0]["video"]["play_addr"]["url_list"][0])//无水印视频

      ]

];

此时数据获取就完成了,我们把数据输出

echo json_encode($arr, JSON_NUMERIC_CHECK | JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);

完整代码

$url = 'https://v.douyin.com/dB4yyd8/';

$loc = get_headers($url, true)['Location'][1];

preg_match('/video\/(.*)\?/', $loc, $id);

$arr = json_decode($this->curl('https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids='.$id[1]), true);

$arr = [

  'name' => $arr['item_list'][0]['author']['nickname'],//作者

  'title' => $arr['item_list'][0]['share_info']['share_title'],//标题

  'cover' => $arr['item_list'][0]['video']['origin_cover']['url_list'][0],//封面

  'video' => str_replace('playwm', 'play', $arr['item_list'][0]["video"]["play_addr"]["url_list"][0])//无水印视频

      ]

];

echo json_encode($arr, JSON_NUMERIC_CHECK | JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);

curl代码片段

private function curl($url, $headers = []){

    $header = ['User-Agent:Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'];

    $con = curl_init((string)$url);

    curl_setopt($con, CURLOPT_HEADER, false);

    curl_setopt($con, CURLOPT_SSL_VERIFYPEER, false);

    curl_setopt($con, CURLOPT_RETURNTRANSFER, true);

    if (!empty($headers)) {

        curl_setopt($con, CURLOPT_HTTPHEADER, $headers);

    } else {

        curl_setopt($con, CURLOPT_HTTPHEADER, $header);

    }

    curl_setopt($con, CURLOPT_TIMEOUT, 5000);

    $result = curl_exec($con);

    return $result;

}

最后结语:

抖音、快手、小红书、微视、今日头条、西瓜视频等30几个平台解析封装了接口,如果不想写代码可以用封装好的接口

接口:https://v.safuo.cn/video?sig=071684d42a83cb5441dcbae737916584&url=https://v.douyin.com/dB4yyd8/

文档:https://v.safuo.cn/open.html

你可能感兴趣的:(抖音短视频无水印解析分析)