PHP最新抖音视频解析接口源码

yipeiwu_com6年前PHP代码库
<?php
function GetVideos($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    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"]);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); 
    $output = curl_exec($ch);
    curl_close($ch);
    return $output;
}

function GetUrl($url)
{
    $UserAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HEADER, 0);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_ENCODING, '');
    curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    $data = curl_exec($curl);
    curl_close($curl);
    return $data;
}
//URL
$url = $_GET['url'];

if (empty($url)) {
    echo json_encode(['code' => 0, 'msg' => '请输入正确视频网址']);
}else{
    $data = GetUrl($url);
    //获取
    preg_match('/playAddr: "(?<url>[^"]+)"/i', $data, $url);
    preg_match('/<p class="desc">(?<desc>[^<>]*)<\/p>/i', $data, $name);
    $name = $name['desc'];
    $url = $url['url'];
    if(empty($url))
    {
        echo json_encode(['code' => 0, 'msg' => '解析错误']);
        exit;
    }
    
    preg_match('/s_vid=(.*?)&/', $url, $id);
    $url = 'https://aweme.snssdk.com/aweme/v1/play/?s_vid=' . $id[1] . '&line=0';
    $data_new = GetVideos($url);
    preg_match('/<a href=\"http:\/\/(.*?)\">/', $data_new, $link);
    
    if (empty($link[1])) {
        echo json_encode(['code' => 0, 'msg' => '解析错误']);
        exit;
    }
    
    $link = 'http://' . $link[1];
    echo json_encode(['code' => 1, 'name' => $name, 'url' => $link]);
}


仅供参考

相关文章

详解WordPress中给链接添加查询字符串的方法

详解WordPress中给链接添加查询字符串的方法

查询字符串指的是链接中后边的问号后的查询语句,格式为 key=value,多个查询语句用 & 符号分开。add_query_arg() 函数就是 WordPress 提供的一个方便的函数...

php中的依赖注入实例详解

本文实例讲述了php中的依赖注入。分享给大家供大家参考,具体如下: 依赖注入是一种允许我们从硬编码的依赖中解耦出来,从而在运行时或者编译时能够修改的软件设计模式。 我到现在依然不大明...

php设计模式介绍之值对象模式第1/5页

例如:通常用一个对象描述一个日期、一个数字或者货币。日期、整数或美元的类定义是都是便于使用的、快捷、便于封装的,并且方便进行拷贝,相互比较,甚至是创建。 从表面上看,这些描述简单的对象很...

解析 thinkphp 框架中的部分方法

 1 thinkphp 框架 中判断输入的数值和数据库中的数值是否一致    首先 需要在view文件夹下建一个模板 名为zhuce.html <...

php中array_unshift()修改数组key注意事项分析

本文实例分析了php中array_unshift()修改数组key注意事项。分享给大家供大家参考,具体如下: 众所周知,array_unshift()用来在数组的开头添加元素,但今天突然...