前言
抖音里面的视频保存之后,会发现全都带有水印,所以如何解决视频去除水印就很有必要,所以教程来了,本次教程不仅会教大家如何去除视频里的水印,并且教大家将程序制作成exe可执行文件,可以发给你的好友使用并进行炫耀一番。
一.问题分析
首先,在抖音APP中分享视频,点击复制链接,即可得到如下所示的分享视频链接。
在浏览器中打开后,发现链接变成了
我们抓下包发现了 item_ids 的接口,后面跟的值就是重定向url的最后这部分(6999605370222054663),我判断这应该是视频的ID了。接口地址如下:
接下来我们看看这个接口请求返回的数据,当我点开Preview的时候,有视频的文案、作者、音乐、缩略图、地址等等。
我拿出视频的地址后,复制到浏览器打开。视频url如下:
打开后发现,视频左上角的水印还是在啊。但是链接中去掉 wm,然后复制到浏览器打开,视频的水印没了。视频无水印的地址如下:
经过简单的分析,抖音去水印的原理就被搞清楚了,既然原理搞明白了,那写代码就非常简单了。
二.代码编写
1.导包和定义请求头
import requests headers = { "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: return try: 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_url except Exception as e: print("解析失败") print(e)
4.下载视频
def download_video(url, name): if not url: return try: 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.调用
if __name__ == "__main__": while 1 < 2: # 抖音APP分享的短链接 url = input("请输入抖音视频链接: ") # url = "https://v.douyin.com/R4tKg6C/" name = input("请给视频起个名字吧: ") share_url = get_share_url(url) video_url = get_video_url(share_url) download_video(video_url, name) print("去除水印完成!")
全部代码
import requests headers = { "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: return try: 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_url except Exception as e: print("解析失败") print(e) def download_video(url, name): if not url: return try: 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("请输入抖音视频链接: ") # url = "https://v.douyin.com/R4tKg6C/" name = input("请给视频起个名字吧: ") share_url = get_share_url(url) video_url = get_video_url(share_url) download_video(video_url, name) print("去除水印完成!")
三.使用教程
1.运行程序后输入分享的抖音视频链接;
2.再输入去除水印后的视频的名称;
3.运行程序成功会将视频保存下来;
四.打包成exe可执行文件
4.1 安装pyinstaller,使用安装命令:
pip install pyinstaller
4.2进行打包
pyinstaller -F -w -i 图标名.后缀 源文件.py # 例子:pyinstaller -F -w -i qt-logo.ico one.py
4.3最终效果
打包完成后会在当前目录下生成dist文件夹,打开后双击exe接可以使用了是不是很简单啊,最后附上效果图
五.总结
到此这篇关于Python抖音视频去水印,并打包成exe可执行文件的详细操作指南的文章就介绍到这了,十分感谢大家的观看,喜欢的可以点个关注哦。