2025最新短视频去水印解析思路(仅供学习交流)
·
在短视频盛行的当下,我们时常会遇到想要保存并使用的视频,但视频上的水印却成了困扰。水印不仅影响视觉效果,还可能对视频的二次创作与使用造成阻碍。那么,如何巧妙地去除这些水印呢?本文将深入探讨 2025 年最新的短视频去水印解析思路,不过需特别提醒,这些方法仅用于学习交流,请勿用于非法或侵犯他人版权的行为。

废话不多说,直接贴代码
这是抖音
# -*- coding: utf8 -*-
import requests # 数据请求库第三方库
import re # 正则模块
import json
import sys
# 伪装请求头方式/请求头参数
headers = {
'cookie': '请填写你的cookie',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.70 '
}
def DyVideoCraw(url):
response = requests.get(url=url, headers=headers)
# 获取网页源代码
# print(response.text)
try:
html_date = re.findall('<script id="RENDER_DATA" type="application/json">(.*?)</script', response.text)[0]
html_date = requests.utils.unquote(html_date)
# print(html_date)
# 解析出标题
title_data = re.findall('"desc":"(.*?)","', html_date)[0]
# print(title_date)
# 解析出封面
cover_data = 'https:' + re.findall('originCover":"(.*?)","', html_date)[0]
# print(cover_date)
# 解析出视频地址
date1 = re.findall('playAddr(.*?),', html_date)[0]
video_url = 'https:' + re.findall('"src":"(.*?)"}', date1)[0]
# print(video_url)
video_obj = {
"type": "video",
"video": video_url,
"title": title_data,
"cover": cover_data
}
r_data = json.dumps(video_obj)
print(r_data)
except IndexError:
print("1")
def DyImageCraw(url):
response = requests.get(url=url, headers=headers)
# 获取网页源代码
# print(response.text)
try:
html_date = re.findall('<script id="RENDER_DATA" type="application/json">(.*?)</script', response.text)[0]
html_date = requests.utils.unquote(html_date)
# print(html_date)
# 解析出标题
title_date = re.findall('"desc":"(.*?)","', html_date)[0]
# print(title_date)
# 解析出图片地址
date1 = re.findall('"images":\[(.*?)],"imageInfos"', html_date)[0]
date1 = re.findall('"urlList":\["(.*?)"],"downloadUrlList', date1)
images_list = []
for i in date1:
images_list.append(i.split('","')[0])
images_obj = {
"type": "image",
"images": images_list,
"title": title_date
}
r_data = json.dumps(images_obj)
print(r_data)
except IndexError:
print("1")
if __name__ == '__main__':
a = []
for i in range(1, len(sys.argv)):
a.append(sys.argv[i])
# print(a[0])
if a[0][23:28]=='video':
DyVideoCraw(a[0])
else:
DyImageCraw(a[0])
这是BILIBILI
# -*- coding: utf8 -*-
import json
import re # 正则模块
import sys
import requests # 数据请求库第三方库
# 伪装请求头方式/请求头参数
headers = {
'cookie': "请填入你的Cooke",
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.70 ',
'Referer': 'https://www.bilibili.com/'
}
def BilVideoCraw(url):
response = requests.get(url=url, headers=headers)
# print(response.text)
try:
title = re.findall('<title data-vue-meta="true">(.*?)</title>', response.text)[0]
# print(title)
cover_data = 'https:' + re.findall('itemprop="thumbnailUrl" content="(.*?)">', response.text)[0]
# print(cover_data)
html_data = re.findall('<script>window.__playinfo__=(.*?)</script>', response.text)[0]
# print(html_data)
json_data = json.loads(html_data)
# pprint(json_data)
# 字典数据 b站视频 和 音频是分离的
audio_url = json_data['data']['dash']['audio'][0]['baseUrl']
video_url = json_data['data']['dash']['video'][0]['baseUrl']
video_obj = {
"type": "video",
"video": video_url,
"audio": audio_url,
"title": title,
"cover": cover_data
}
r_data = json.dumps(video_obj)
print(r_data)
except IndexError:
print("1")
if __name__ == '__main__':
a = []
for i in range(1, len(sys.argv)):
a.append(sys.argv[i])
BilVideoCraw(a[0])
拉进python里面直接就可以使用!
更多推荐

所有评论(0)