本帖最后由 xiaoyuanling 于 2019-4-29 12:22 编辑
主要是 抖音更新了 请求PC端的UA 不行 必须在请求 一次手机端的 UA才能播放。
下面的源码是已经修好的,但是不能直接用。
会PHP的利用下面的代码对API进行修复
[PHP] 纯文本查看 复制代码 <?php
if (!empty($_GET['url'])) {
$url = $_GET['url'];
$str = GET($url, 1);
preg_match("/video_id=(.*?)&/i", $str, $arr);
if (count($arr) >= 1) {
$str = GET("https://aweme.snssdk.com/aweme/v1/play/?video_id=".$arr[1]."&line=0", 0);
preg_match('#<a href="(.*?)">#', $str, $arr2);
if (count($arr2) >= 1) {
$arr3 = explode("//", $arr2[1]);//把http替换成https就能完美解决
if (!empty($arr3)) {
//header("content-type:video/mp4");
//header("Location: "."https://".$arr3[1]);
if (!empty($_GET['way']) && $_GET['way'] == "txt") { //纯文本输出
exit("https://".$arr3[1]);
}
elseif(!empty($_GET['way']) && $_GET['way'] == "json") { //json文本输出
$aray = ['code' =>200, 'msg' =>'success', 'url' =>"https://".$arr3[1]];
exit(json_encode($aray, false));
} else { //跳转到改地址播放
header("Location: "."https://".$arr3[1]);
}}}}
} else {
echo "参数呢???????????????";
}
function Get($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
$output = curl_exec($ch); //获取内容
curl_close($ch); //关闭
return $output; //返回
}
?> |