先放效果圖 php
能夠掃碼或者微信搜索 「 和水印說拜拜 」 小程序體驗一下。有效再繼續往下看吧。抖音視頻上傳後,是有2個視頻地址,(長視頻還會多一個),一個是無水印的,一個是有水印的,萬能的網友通過爬蟲後,拿到了這個連接,那就能夠實現保存無水印的視頻了(去水印)。算法
一、裏面是一個PHP文件,把你輸入的抖音連接,轉爲無水印的連接輸出。不建議把這個轉換算法寫死在本地,由於這個轉換算法隨時會變,因此用PHP實現,而後客戶端或者微信小程序調用。json
<?php
header('Content-type: application/json');
$_u = $_GET['_u'];
function _g($_u, $_n = 0) {
$_h = curl_init();
curl_setopt($_h, CURLOPT_URL, $_u);
curl_setopt($_h, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($_h, CURLOPT_HEADER, false);
curl_setopt($_h, CURLOPT_HTTPHEADER, array(
'user-agent:Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Mobile Safari/537.36'
));
if ($_n == 1) {
curl_setopt($_h, CURLOPT_NOBODY, 1);
curl_setopt($_h, CURLOPT_FOLLOWLOCATION, 1);
curl_exec($_h);
$_r = curl_getinfo($_h, CURLINFO_EFFECTIVE_URL);
} else {
$_r = curl_exec($_h);
}
curl_close($_h);
return $_r;
}
if (strpos($_u, 'com') !== false) {
$_u = _g(_g($_u, 1));
preg_match('/class=\"video-player\" src=\"(.*?)\" preload/is', $_u, $_m);
$_m = str_replace("line=0", "line=1", str_replace("playwm", "play", $_m[1]));
$_v = _g($_m, 1);
if ($_v == '') {
$_c = 0701.1;
$_s = 'error';
} else {
$_c = 0;
$_s = 'success';
}
} else {
$_c = 0701.2;
$_s = 'url does not match';
}
echo json_encode(array(
"code" => $_c,
"errMsg" => $_s,
"videoUrl" => $_v,
"tmp" => time()
) , JSON_UNESCAPED_SLASHES);
?>
複製代碼
把這個PHP文件丟到你的服務器,而後訪問https://xxxx.com/douyin.php?_u=https://sss抖音連接 而後就會返回對應的信息,例如:小程序
{
"code": 0,
"errMsg": "success",
"videoUrl": "https://aweme.snssdk.com/aweme/v1/play/?s_vid=93f1b41336a8b7a442dbf1c29c6bbc56827bba338da58fff9d414d5e0e891260a1c391d356de42072e5c7b4c15e93325052710f7923662532737d5c3f25a856e&line=1",
"tmp": 1568018629
}
複製代碼
這個videoUrl就是無水印的視頻地址,能夠直接在小程序 < video >標籤裏面播放,可是在小程序裏面,這個是保存不了的,很奇怪,我試了不少次,都是提示類型無效。因此,我是直接讓用戶複製這個連接,而後在QQ瀏覽器打開,就能下載視頻。(若是有人知道小程序怎樣能保存這個視頻,請聯繫我,我作了一個微信小程序的代碼片斷,大家能夠拿去試下。地址:developers.weixin.qq.com/s/f5e4RbmR7…微信小程序
若是是客戶端使用的話,是能夠直接保存的,後綴名爲mp4,能直接下載保存。瀏覽器
$_u = _g(_g($_u, 1));
preg_match('/class=\"video-player\" src=\"(.*?)\" preload/is', $_u, $_m);
$_m = str_replace("line=0", "line=1", str_replace("playwm", "play", $_m[1]));
$_v = _g($_m, 1);
複製代碼
上面的PHP,其實主要就是這裏,把接收的抖音連接,進行一個正則轉換替換字符,而後再輸出連接。bash
這個轉換的算法,應該是抖音隨時更換的,不保證永遠有效,但截至發帖,都是有效的,建議你們去掃一下小程序,看看能不能轉換,能的話,即代表還能用。 服務器