欢迎光临
我们一直在努力

获取抖音无水印短视频

<?php

namespace app\whoim\controller;

use think\Controller;
use think\Exception;
use think\Request;
use QL\QueryList;
use GuzzleHttp\Client;

class Parsing extends Controller
{
    public $_userinfo; // 当前登录的账号信息

    // 初始化加载
    public function __construct()
    {
        parent::__construct();
    }

    protected function _initialize()
    {
        $token = \request()->header('token') ? \request()->header('token') : input('token');
        if (!empty($token)) {
            $this->_userinfo = checkLogin($token);
        } else {
            $this->_userinfo = (object)[];
        }
    }

    // 抖音
    private function douyin($url)
    {
        $headers = [
            'Connection' => 'keep-alive',
            'Host' => 'aweme.snssdk.com',
            'User-Agent' => 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16D57 Version/12.0 Safari/604.1'
        ];
        $client = new Client(['headers' => $headers]);

        //允许重定向获取html
        $res = $client->request('GET', $url, ['allow_redirects' => true]);
        $html = (string)$res->getBody();


        $Query = QueryList::getInstance();
        $video_src = $Query->html($html)->find('video')->src;

        //爬虫视频地址
        $video_src = str_replace("playwm", "play", $video_src);

        //获取url地址之后不能让他重定向
        $res = $client->request('GET', $video_src, ['allow_redirects' => false]);
        $data['video_src'] = $res->getHeaderLine('location') . '.mp4';
        $data['video_src'] = str_replace('http://', 'https://', $data['video_src']);

        $hosts = parse_url($data['video_src']);
        $host = $hosts['host'];
        $dyurls = [
            'v1-dy.ixigua.com',
            'v3-dy.ixigua.com',
            'v6-dy-y.ixigua.com',
            'v9-dy-y.ixigua.com',
            'v26-dy.ixigua.com',
            'v27-dy.ixigua.com'
        ];
        if (!in_array($host,$dyurls)){
            $this->douyin($url);
        }
        //视频封面
        $video_cover = $Query->html($html)->find('.video-poster')->style;
        $video_cover = str_replace("background-image:url(", "", $video_cover);
        $data['video_cover'] = trim($video_cover, ')');

        $video_title = $Query->html($html)->find('.user-title')->text();
        $title = explode('@', $video_title);
        for ($i = 0; $i < count($title); $i++) {
            $video_title = str_replace('@' . $title[$i], "", $video_title);
        }
        $title = explode('#', $video_title);
        for ($i = 0; $i < count($title); $i++) {
            $video_title = str_replace('#' . $title[$i], "", $video_title);
        }

        $video_title = str_replace("抖音", "", $video_title);
        $data['video_title'] = trim($video_title);
        return $data;
    }

}


打赏
未经允许不得转载: » 获取抖音无水印短视频
分享到: 更多 (0)

评论 0

莫等闲、白了少年头,空悲切 - 繁华emoji

联系我们 联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏