我使用了两个函数来获取url或视频播放1.用于提取带有水印的视频的tiktok
public function getDetails()
{
$url = $this->url;
$resp = $this->getContent($url);
$check = explode("\"contentUrl\":\"", $resp);
if (count($check) > 1) {
$video = explode("\"", $check[1])[0];
$videoWithoutWaterMark = $this->WithoutWatermark($url);
$thumb = explode("\"", explode("\"thumbnailUrl\":[\"", $resp)[1])[0];
$username = explode("/", explode("@", explode("\"", explode("\"url\":\"", $resp)[1])[0])[1])[0];
$result = [
'video'=>$video,
'withoutWaterMark'=>$videoWithoutWaterMark,
'user'=>$username,
'thumb'=>$thumb,
'error'=>false,
'message'=>false
];
}
else
{
$result = [
'video'=>false,
'withoutWaterMark'=>false,
'user'=>false,
'thumb'=>false,
'error'=>true,
'message'=>"Please double check your url and try again."
];
}
return $result;
}
private function cUrl($url)
{
$user_agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
用于获取无水印的视频url的另一个函数是
private function WithoutWatermark($url)
{
//videi id for example 6795008547961752326
$dd = explode("video/",$url);
$url = "https://api2.musical.ly/aweme/v1/playwm/?video_id=".$dd[1];
return $url;
}
请帮我找到tiktok视频id,或者如何创建无水印的视频下载链接。如何找到视频的视频id,所以我将使用这个视频id来创建一个下载链接“https://api2.musical.ly/aweme/v1/playwm/?video";
发布于 2020-05-05 17:21:33
您的函数WithoutWatermark不起作用。
如果您有如下url : tiktok.com/@user/video/123456
然后你可以做一个卷曲:
$data = cUrl($url)
你会从tiktok得到一个页面,使用regex你可以提取url视频:
https://v16.muscdn.com/123etc
然后用上面的url再次卷曲,响应是字节,在regex里面你可以找到类似这样的vid:yourvideoid
https://stackoverflow.com/questions/61571988
复制相似问题