Python抖音视频去水印,并打包成exe可执行文件

本文涉及的产品
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: Python抖音视频去水印,并打包成exe可执行文件

前言

抖音里面的视频保存之后,会发现全都带有水印,所以如何解决视频去除水印就很有必要,所以教程来了,本次教程不仅会教大家如何去除视频里的水印,并且教大家将程序制作成exe可执行文件,可以发给你的好友使用并进行炫耀一番。


一.问题分析

首先,在抖音APP中分享视频,点击复制链接,即可得到如下所示的分享视频链接。


在浏览器中打开后,发现链接变成了


我们抓下包发现了 item_ids 的接口,后面跟的值就是重定向url的最后这部分(6999605370222054663),我判断这应该是视频的ID了。接口地址如下:



接下来我们看看这个接口请求返回的数据,当我点开Preview的时候,有视频的文案、作者、音乐、缩略图、地址等等。


14.png

我拿出视频的地址后,复制到浏览器打开。视频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接可以使用了是不是很简单啊,最后附上效果图



15.png


五.总结

到此这篇关于Python抖音视频去水印,并打包成exe可执行文件的详细操作指南的文章就介绍到这了,十分感谢大家的观看,喜欢的可以点个关注哦。

相关文章
|
4天前
|
JSON 安全 数据格式
Python文件操作宝典:一步步教你玩转文件读写
Python文件操作宝典:一步步教你玩转文件读写
|
4天前
|
Python
python搭建文件服务
python搭建文件服务
10 1
|
2天前
|
机器学习/深度学习 人工智能 程序员
探索Python宝库:从基础到技能的干货知识(数据类型与变量+ 条件与循环+函数与模块+文件+异常+OOP)
探索Python宝库:从基础到技能的干货知识(数据类型与变量+ 条件与循环+函数与模块+文件+异常+OOP)
3 0
|
3天前
|
Web App开发 JSON 开发者
程序技术好文:用Python撸点视频背景音乐素材
程序技术好文:用Python撸点视频背景音乐素材
|
4天前
|
数据安全/隐私保护 Python
经验大分享:python读取yaml文件
经验大分享:python读取yaml文件
10 0
|
5天前
|
存储 Python
Python处理文件的常用代码
Python处理文件的常用代码
|
5天前
|
Python
python文件的读取与写入
python文件的读取与写入
11 0
|
机器学习/深度学习 数据处理 算法框架/工具
|
8天前
|
机器学习/深度学习 人工智能 前端开发
Python中的模块化编程
【6月更文挑战第17天】Python模块化编程与软件架构设计的关键在于拆分任务到独立模块,提高代码的可维护性、可重用性和可扩展性。例如,学生管理系统可分解为录入、查询和删除模块。MVC和MVVM架构模式有助于组织代码,而微服务和函数式编程将在未来发展中扮演重要角色。通过示例代码,读者能学习如何实现这些概念,提升项目开发效率和质量。
155 57