(.*?)<\/script>/', $res, $match)){ $json = rawurldecode($match[1]); $arr = json_decode($json, true); if(isset($arr['articleInfo']['playAuthTokenV2'])){ $result = [ 'title' => $arr['articleInfo']['title'], 'author' => $arr['articleInfo']['mediaUser']['screenName'], 'avatar' => $arr['articleInfo']['mediaUser']['avatarUrl'], 'time' => date('Y-m-d H:i:s', $arr['articleInfo']['publishTime']), 'cover' => $arr['articleInfo']['posterUrl'], ]; $playinfo = base64_decode($arr['articleInfo']['playAuthTokenV2']); $playinfo = json_decode($playinfo, true); if(isset($playinfo['GetPlayInfoToken'])){ $requrl = 'https://vod.bytedanceapi.com/?'.$playinfo['GetPlayInfoToken']; $res = get_curl($requrl, 0, $url, 0, 0, $ua); $arr = json_decode($res, true); if(isset($arr['Result']['Data']['PlayInfoList']) && !empty($arr['Result']['Data']['PlayInfoList'])){ $playinfolist = $arr['Result']['Data']['PlayInfoList']; array_multisort(array_column($playinfolist, 'Bitrate'), SORT_DESC, $playinfolist); $result['url'] = $playinfolist[0]['MainPlayUrl']; return $result; } } } } throw new Exception('视频解析失败'); }else{ throw new Exception('视频id获取失败'); } } }