前言
抖音里面的視頻保存之后,會(huì)發(fā)現(xiàn)全都帶有水印,所以如何解決視頻去除水印就很有必要,所以教程來了,本次教程不僅會(huì)教大家如何去除視頻里的水印,并且教大家將程序制作成exe可執(zhí)行文件,可以發(fā)給你的好友使用并進(jìn)行炫耀一番 。一.問題分析首先,在抖音APP中分享視頻,點(diǎn)擊復(fù)制鏈接,即可得到如下所示的分享視頻鏈接 。
https://v.douyin.com/d8LpxMQ/在瀏覽器中打開后,發(fā)現(xiàn)鏈接變成了
https://www.iesdouyin.com/share/video/6999605370222054663/我們抓下包發(fā)現(xiàn)了 item_ids 的接口,后面跟的值就是重定向url的最后這部分(6999605370222054663),我判斷這應(yīng)該是視頻的ID了 。接口地址如下:
https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=6999605370222054663接下來我們看看這個(gè)接口請(qǐng)求返回的數(shù)據(jù),當(dāng)我點(diǎn)開Preview的時(shí)候,有視頻的文案、作者、音樂、縮略圖、地址等等 。

文章插圖
我拿出視頻的地址后,復(fù)制到瀏覽器打開 。視頻url如下:
https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0d00fg10000c4hpfk3c77uar6l7cs90&ratio=720p&line=0打開后發(fā)現(xiàn),視頻左上角的水印還是在啊 。但是鏈接中去掉 wm,然后復(fù)制到瀏覽器打開,視頻的水印沒了 。視頻無水印的地址如下:
https://aweme.snssdk.com/aweme/v1/play/?video_id=v0d00fg10000c4hpfk3c77uar6l7cs90&ratio=720p&line=0經(jīng)過簡(jiǎn)單的分析,抖音去水印的原理就被搞清楚了,既然原理搞明白了,那寫代碼就非常簡(jiǎn)單了 。
二.代碼編寫
1.導(dǎo)包和定義請(qǐng)求頭
import requestsheaders = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3904.108 Safari/537.36",}2.獲取分享鏈接
def get_share_url(url):try:r = requests.get(url, headers=headers, allow_redirects=False)return r.headers['location']except Exception as e:print("解析失敗")print(e)3.獲取視頻鏈接
def get_video_url(url):if not url:returntry:vid = url.split("/?")[0].split("video/")[1]xhr_url = f'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={vid}'r = requests.get(xhr_url, headers=headers).json()video_url = r['item_list'][0]['video']['play_addr']['url_list'][0]return video_urlexcept Exception as e:print("解析失敗")print(e)4.下載視頻
def download_video(url, name):if not url:returntry:r = requests.get(url, headers=headers)with open(name + '.mp4', 'wb') as f:f.write(r.content)print("下載完成")except Exception as e:print("下載失敗")print(e)5.調(diào)用
if __name__ == "__main__":while 1 < 2:# 抖音APP分享的短鏈接url = input("請(qǐng)輸入抖音視頻鏈接: ")# url = "https://v.douyin.com/R4tKg6C/"name = input("請(qǐng)給視頻起個(gè)名字吧: ")share_url = get_share_url(url)video_url = get_video_url(share_url)download_video(video_url, name)print("去除水印完成!")全部代碼
import requestsheaders = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3904.108 Safari/537.36",}def get_share_url(url):try:r = requests.get(url, headers=headers, allow_redirects=False)return r.headers['location']except Exception as e:print("解析失敗")print(e)def get_video_url(url):if not url:returntry:vid = url.split("/?")[0].split("video/")[1]xhr_url = f'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={vid}'r = requests.get(xhr_url, headers=headers).json()video_url = r['item_list'][0]['video']['play_addr']['url_list'][0]return video_urlexcept Exception as e:print("解析失敗")print(e)def download_video(url, name):if not url:returntry:r = requests.get(url, headers=headers)with open(name + '.mp4', 'wb') as f:f.write(r.content)print("下載完成")except Exception as e:print("下載失敗")print(e)if __name__ == "__main__":while 1 < 2:# 抖音APP分享的短鏈接url = input("請(qǐng)輸入抖音視頻鏈接: ")# url = "https://v.douyin.com/R4tKg6C/"name = input("請(qǐng)給視頻起個(gè)名字吧: ")share_url = get_share_url(url)video_url = get_video_url(share_url)download_video(video_url, name)print("去除水印完成!")
經(jīng)驗(yàn)總結(jié)擴(kuò)展閱讀
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 抖腿神曲有哪些?
- 靜態(tài)屬性的陷阱 python中類與對(duì)象的命名空間、__dict__ 和 dir 在繼承中使用說明
- 學(xué)習(xí)記錄-Python的局部變量和全局變量
- Python 實(shí)現(xiàn)Tracert追蹤TTL值
- python合并多個(gè)excel
- 抖音怎么導(dǎo)入原創(chuàng)音樂
- Python實(shí)現(xiàn)改進(jìn)后的Bi-RRT算法實(shí)例
- NIKKE勝利女神抖動(dòng)怎么開啟
- 寶寶輔食是什么圈內(nèi)用語
- 一方水土養(yǎng)一方人是什么梗
