私は、URLまたはビデオ再生を取得するために2つの関数を使用しています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_id=v09044b90000bpfdj5q91d8vtcnie6o ";
関数WithoutWatermarkは機能しません。
次のようなURLがある場合:tiktok.com/@user/video/123456
それからあなたはカールを作ることができます:
$data = cUrl($url)
あなたはtiktokからページを取得します、正規表現であなたはurlビデオを抽出することができます:
https://v16.muscdn.com/123etc
次に、上記のURLで再びカールします。応答はバイトで、正規表現を使用すると、次のようなvid:yourvideoidを見つけることができます。