抖音視頻如何去水印? 《科技頭條》

《網路科技頭條每日報導》

獲取抖音小視頻分享鏈接

首先,在抖音上找到想要下載或者保存的小視頻。

其次,點擊視頻右側邊欄的分享按鈕,在最下方一欄找到復制鏈接,然後點擊復制鏈接,這個時候,這個短視頻的鏈接就復制到了手機的粘貼板上了。

然後,打開手機中的記事本,粘貼分享的視頻鏈接,會得到一個以https開頭的鏈接,這個鏈接接下來就是我要用到的東西。

分析接口

1,將得到抖音分享鏈接直接用電腦上的瀏覽器打開,按F12打開調試器。然後F5刷新頁面,我將獲得抖音服務器給我們返回的信息。

2,在我的調試器窗口中,可以看到,瀏覽器在刷新的時候進行了多次服務器的請求,隻需要找到對我有用的請求,如下圖所示

3,分析服務器給我們返回來的數據,在調試器中找到preview並點擊它,會獲取到該視頻的所有信息,這些信息其實是一個json封裝的數據格式。

4,我都拿到該視頻的所有數據了,那麼剩下的就是對這些數據進行分析,通過分析發現,視頻鏈接是存放在item_list->video->play_addr->url_list下面的。如下圖所示

5,替換掉獲取到的接口中的playwm為play即可得到該小姐姐的無水印視頻,然後驗證一下接口是否真的無水印了。

當我知道了抖音的視頻鏈接存放位置,水印視頻和無水印視頻的區別之後,我就可以自己開發一個接口,後面就不用每次都要去分析視頻接口,這個重復的工作就交給計算機去做即可。

JAVA代碼處理

直接上代碼,代碼本來就比較簡單,主要是分析過程,開發語言隻是實現工具。

//模擬請求頭final static String usedAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/84.0.4147.105";    /**     * @param url     * @return     */    @PostMapping("video")    @ApiOperation("抖音短視頻解析接口")    public String getVideoUrl(@ApiParam(            required = true, value = "抖音短視頻鏈接") @RequestParam String url) {        try {            //模擬瀏覽器請求分享地址            String body = HttpRequest.get(filterUrl(url))                    .header(Header.USER_AGENT, usedAgent)                    .execute()                    .body();            String video_id = body.substring(body.indexOf("/video/") + 7, body.indexOf("/?"));            //這次請求才是我上文中分析的視頻的真實請求地址            body = HttpRequest.get("https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=" + video_id)                    .header(Header.USER_AGENT, usedAgent)                    .execute()                    .body();            JSONObject json = JSONObject.parseObject(body);            String videoAddress = json.getJSONArray("item_list")                    .getJSONObject(0).getJSONObject("video")                    .getJSONObject("play_addr")                    .getJSONArray("url_list")                    .get(0).toString();           //替換鏈接中的playwm            return videoAddress.replaceAll("playwm", "play");        } catch (Exception e) {            return null;        }    }    /**     * 消除分享鏈接中的中文字符     *     * @param url     * @return     */    public static String filterUrl(String url) {        String regex = "https?://(\w|-)+(\.(\w|-)+)+(/(\w+(\?(\w+=(\w|%|-)*(\&\w+=(\w|%|-)*)*)?)?)?)+";//匹配網址        Pattern p = Pattern.compile(regex);        Matcher m = p.matcher(url);        if (m.find()) {            return url.substring(m.start(), m.end());        }        return "";    }

直接快速地使用springboot框架+swagger搭建一個項目,將這個文件放到controller層下,啟動項目。

直接在上圖中紅色框框中輸入抖音的分享視頻鏈接,然後點擊下方的執行按鈕,即可得到無水印視頻的鏈接。鏈接是在response body中。

下載無水印視頻

因為上面的JAVA服務是本地啟動的,所以無法隨時隨地的訪問,這個時候隻需要將其打包上傳到服務器即可,這樣就能隨時隨地的獲取抖音無水印視頻鏈接了。

將得到的無水印視頻鏈接放到手機或者瀏覽器上,都已直接進行保存到本地或者電腦上,具體方式這裡就不再講了。