header("Content-type: text/html; charset=utf-8"); //抖音视频地址 $url_g = @$_GET['url'] ?? 'http://v.douyin.com/rYs9HU'; $api = "https://api-hl.amemv.com/aweme/v1/aweme/detail/?retry_type=no_retry&iid=43619087057&device_id=57318346369&ac=wifi&channel=update&aid=1128&app_name=aweme&version_code=251&version_name=2.5.1&device_platform=android&ssmix=a&device_type=MI+8&device_brand=xiaomi&language=zh&os_api=22&os_version=5.1.1&uuid=865166029463703&openudid=ec6d541a2f7350cd&manifest_version_code=251&resolution=1080*1920&dpi=480&update_version_code=2512&_rticket=1559206461097&ts=1559206460&as=a115996edcf39c7adf4355&cp=9038c058c7f6e4ace1IcQg&mas=01af833c02eb8913ecc7909389749e6d89acaccc2c662686ecc69c&aweme_id=";//6691388713936653576 //header请求头和cookie,请自己获取(涉及个人隐私,故不放出来),我可以帮你抓取.你也可以直接使用我的接口 [url=https://api.isoyu.com/ckplayer/douyin.jsp?url=]https://api.isoyu.com/ckplayer/douyin.jsp?url=[/url] $cookie = "##"; $user_agent = "Mozilla/5.0 (Linux; Android 8.0.0; MI 6 Build/OPR1.170623.027; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/62.0.3202.84 Mobile Safari/537.36"; //获取分享连接1 function getLinkFromDouyinShareText($shareOrUrl) { $url = "http" . explode("http", $shareOrUrl)[1]; $url = explode("复制此链接,", $url)[0]; return $url; } //获取分享页面html function getAwemeId($link, $UA) { $context = stream_context_create(['http' => ['header' => 'User-Agent:' . $UA]]); $html_text = file_get_contents($link, 0, $context); $str = explode("itemId: "", $html_text)[1]; $str = explode("",", $str)[0]; return $str; } //请求视频内容 function doCurlGetRequest($url, $headers, $timeout = 5) { if ($url == '' || $timeout <= 0) { return false; } $con = curl_init((string)$url); curl_setopt($con, CURLOPT_HEADER, false); curl_setopt($con, CURLOPT_RETURNTRANSFER, true); curl_setopt($con, CURLOPT_HTTPHEADER, $headers); curl_setopt($con, CURLOPT_TIMEOUT, (int)$timeout); return curl_exec($con); } //获取视频内容 function getVideoData($api, $cookie, $awemeId) { $header = [ "Accept-Encoding: utf-8", "Cookie: " . $cookie, "Host: api-hl.amemv.com", "Connection: Keep-Alive", "User-Agent: okhttp/3.10.0.1", ]; $data = json_decode(doCurlGetRequest($api . $awemeId, $header), true); $info = $data['aweme_detail']['share_info'];//视频描述 $user_name = $data['aweme_detail']['author']['nickname'];//作者昵称 $user_headImg = $data['aweme_detail']['author']['avatar_medium']['url_list'][0];//作者头像 $image = $data['aweme_detail']['video']['origin_cover']['url_list'][0];//封面图片 $urls = $data['aweme_detail']['video']['play_addr']['url_list'];//无水印地址 $music_urls = $data['aweme_detail']['music']['play_url']['url_list'];//音乐地址 $douyin = [ 'status' => true, 'nickname' => $user_name, 'awemeId' => $awemeId, 'headImage' => $user_headImg, 'image' => $image, 'videoUrl' => $urls, 'music_urls' => $music_urls, 'info' => $info, 'time' => time(), ]; return $douyin; } if (strstr($url_g, 'http://v.douyin.com/')) { $url_g = getLinkFromDouyinShareText($url_g); $awemeId = getAwemeId($url_g, $user_agent); $res = getVideoData($api, $cookie, $awemeId); print_r($res); } else { echo json_encode(["status" => false, "message" => "地址无效"]); }