前言

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

一.问题分析

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

https://v.douyin.com/d8LpxMQ/

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

https://www.iesdouyin.com/share/video/6999605370222054663/

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

https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=6999605370222054663

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



我拿出视频的地址后,复制到浏览器打开。视频url如下:

https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0d00fg10000c4hpfk3c77uar6l7cs90&ratio=720p&line=0

打开后发现,视频左上角的水印还是在啊。但是链接中去掉 wm,然后复制到浏览器打开,视频的水印没了。视频无水印的地址如下:

https://aweme.snssdk.com/aweme/v1/play/?video_id=v0d00fg10000c4hpfk3c77uar6l7cs90&ratio=720p&line=0

经过简单的分析,抖音去水印的原理就被搞清楚了,既然原理搞明白了,那写代码就非常简单了。

二.代码编写

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可执行文件的详细操作指南的文章就介绍到这了,十分感谢大家的观看,喜欢的可以点个关注哦。

Python抖音视频去水印,并打包成exe可执行文件的更多相关文章

  1. 将Python项目打包成EXE可执行文件(单文件,多文件,包含图片)

    解决 将Python项目打包成EXE可执行文件(单文件,多文件,包含图片) 1.当我们写了一个Python的项目时,特别是一个GUI项目,我们特备希望它能成为一个在Windows系统可执行的EXE文件 ...

  2. PyQt(Python+Qt)学习随笔:windows下使用pyinstaller将PyQt文件打包成exe可执行文件

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 在<windows下使用pyinstaller将多个目录的Pyt ...

  3. Python打包成exe可执行文件

    Python打包成exe可执行文件 安装pyinstaller pyinstaller打包机制 Pyinstaller打包exe 总结命令 可能会碰到的一些常见问题 我们开发的脚本一般都会用到一些第三 ...

  4. 如何把py文件打包成exe可执行文件

    如何把py文件打包成exe可执行文件 1.安装 pip install pyinstaller 或者 pip install -i https://pypi.douban.com/simple pyi ...

  5. 打包成exe可执行文件的方法

    Python安装扩展库与打包成exe可执行文件的方法 1.安装扩展库的几种方法. 首先可能需要使用 pip install --upgrade pip 来升级本机的pip程序.然后在命令提示符环境(即 ...

  6. pyinstaller将python编写的打卡程序打包成exe

    编写了一个简易的定时提醒下班打卡程序,python代码如下: #coding:utf-8 import time import datetime from tkMessageBox import * ...

  7. windows下如何将Python文件打包成.exe可执行文件

    在使用Python做开发的时候,时不时会给自己编写了一些小工具辅助自己的工作,但是由于开发依赖环境问题,多数只能在自己电脑上运行,拿到其它电脑后就没法运行了.这显得很不方便,不符合我们的初衷,那么有没 ...

  8. windows下使用pyinstaller将多个目录的Python文件打包成exe可执行文件

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.引言 需要将一个工程涉及两个目录的模块文件打包成exe,打包环境如 ...

  9. Java桌面程序打包成exe可执行文件

    前言: 我们都知道Java可以将二进制程序打包成可执行jar文件,双击这个jar和双击exe效果是一样一样的,但感觉还是不同.其实将java程序打包成exe也需要这个可执行jar文件. 准备: ecl ...

随机推荐

  1. 透过Redis源码探究Hash表的实现

    转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/667 本文使用的Redis 5.0源码 概述 我们在学习 Redis ...

  2. 使用 Liquibase 管理数据库版本 - SpringBoot 2.7 .2 实战基础

    优雅哥 SpringBoot 2.7 .2 实战基础 - 05 -使用 Liquibase 管理数据库版本 在企业开发中,数据库版本管理好像是一个伪命题,大多项目都是通过 Power Designer ...

  3. java学习第七天xml.day18

    反射 在java中,反射主要是指程序可以访问.检测和修改它本身状态或行为的一种能力. 获取字节码的方式: 使用反射获取构造器 : 内省

  4. 年轻的樵夫哟,你掉的是这个免费 8 核 4G 公网Docker 服务器

    Play With Docker 直接打开 https://labs.ply-with-docker.com/ 即可访问 Play With Docker 平台. 注册一个 DockerHub 账号便 ...

  5. LGV 引理——二维DAG上 n 点对不相交路径方案数

    文章目录 引入 简介 定义 引理 证明 例题 释疑 扩展 引入 有这样一个问题: 甲和乙在一张网格图上,初始位置 ( x 1 , y 1 ) , ( x 2 , y 2 ) (x_1,y_1),(x_ ...

  6. 使用IntelliJ IDEA新建一个spring boot项目

    好家伙, 使用IntelliJ IDEA新建一个spring boot项目 目的很简单,就是网页上出现一个"hello world" 别的暂时不管 首先关于工具IntelliJ I ...

  7. PostgreSQL 欺骗优化器之扩展统计信息

    一.什么是扩展统计 扩展统计对象, 追踪指定表.外部表或物化视图的数据. 目前支持的种类: 启用n-distinct统计的 ndistinct. 启用功能依赖性统计的dependencies. 启用最 ...

  8. KingbaseES 数据库删除功能组件

      关键字: KingbaseES.卸载.删除功能   一.安装后检查 在安装完成后,可以通过以下几种方式进行安装正确性验证: 1. 查看安装日志,确认没有错误记录; 2. 查看开始菜单: 查看应用程 ...

  9. K8S Pod及其控制器

    Pod K8S里能够运行的最小逻辑单元,1个Pod可以运行多个容器 Pod 控制器 Pod控制器是Pod启动的一种模版,用来保证在K8S中启动的Pod始终按照人们的预期运行(副本数,生命周期.健康状态 ...

  10. 读完 RocketMQ 源码,我学会了如何优雅的创建线程

    RocketMQ 是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时.高可靠的消息发布与订阅服务. 这篇文章,笔者整理了 RocketMQ 源码中创建线程的几点技巧,希望大家读完之后,能 ...