国产精品免费嫩草研究院|无遮羞动漫在线观看AV|国产麻豆精品传媒AV国产在线|村在线观看|寂寞情人1正版|韩国床震韩国床震古|精品系列专区久久

Python抖音視頻去水印,并打包成exe可執(zhí)行文件

前言

抖音里面的視頻保存之后,會(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í)候,有視頻的文案、作者、音樂、縮略圖、地址等等 。
Python抖音視頻去水印,并打包成exe可執(zhí)行文件

文章插圖
我拿出視頻的地址后,復(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ò)展閱讀