python去除抖音水印_抖音去水印下载python源码

import requests

import re

import json

import os

class douyin_video():

def __init__(self):

self.headers = {Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8,

Accept-Encoding: gzip, deflate, sdch, br,

Accept-Language: zh-CN,zh;q=0.8,

Connection: keep-alive,

Upgrade-Insecure-Requests: 1,

user-agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Mobile Safari/537.36

}

self.url =

def get_video_info(self):

video_id = re.search(video/.*?/, get_local_url(headers=self.headers, url=self.url)).group().replace(video/, ).replace(/, )

url = https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids= + video_id

res = requests.get(url=url)

data = json.loads(res.content)[item_list][0]

return {

file_name: validateTitle(data[desc]),

vid: data[video][vid]

}

def down_video(self, name_vidObj):

url = https://aweme.snssdk.com/aweme/v1/play/?video_id=%s&ratio=720p&line=0 % name_vidObj[vid]

video_url = get_local_url(url=url, headers=self.headers)

res = requests.get(url=video_url)

with open(name_vidObj[file_name] + .mp4, wb) as f:

f.write(res.content)

print(%s 下载完成! % name_vidObj[file_name])

def get_local_url(url, headers):

html = requests.get(url, headers=headers, allow_redirects=False)

return html.headers[Location]

def validateTitle(title):

rstr = r"[/\:*?"\|]" # / : * ? " < > |

new_title = re.sub(rstr, "_", title) # 替换为下划线

return new_title

if __name__ == __main__:

getVideo = douyin_video()

while True:

while True:

url = input(输入抖音url短链: )

if url != :

break

getVideo.url = url

try:

getVideo.down_video(getVideo.get_video_info())

print( )

except:

print(错误的分享链接,或该接口失效 )

input(按任意键重试 )

os.system(cls)

import requests import re import json import os class douyin_video(): def __init__(self): self.headers = {Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8, Accept-Encoding: gzip, deflate, sdch, br, Accept-Language: zh-CN,zh;q=0.8, Connection: keep-alive, Upgrade-Insecure-Requests: 1, user-agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Mobile Safari/537.36 } self.url = def get_video_info(self): video_id = re.search(video/.*?/, get_local_url(headers=self.headers, url=self.url)).group().replace(video/, ).replace(/, ) url = https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids= + video_id res = requests.get(url=url) data = json.loads(res.content)[item_list][0] return { file_name: validateTitle(data[desc]), vid: data[video][vid] } def down_video(self, name_vidObj): url = https://aweme.snssdk.com/aweme/v1/play/?video_id=%s&ratio=720p&line=0 % name_vidObj[vid] video_url = get_local_url(url=url, headers=self.headers) res = requests.get(url=video_url) with open(name_vidObj[file_name] + .mp4, wb) as f: f.write(res.content) print(%s 下载完成! % name_vidObj[file_name]) def get_local_url(url, headers): html = requests.get(url, headers=headers, allow_redirects=False) return html.headers[Location] def validateTitle(title): rstr = r"[/\:*?"\|]" # / : * ? " < > | new_title = re.sub(rstr, "_", title) # 替换为下划线 return new_title if __name__ == __main__: getVideo = douyin_video() while True: while True: url = input(输入抖音url短链: ) if url != : break getVideo.url = url try: getVideo.down_video(getVideo.get_video_info()) print( ) except: print(错误的分享链接,或该接口失效 ) input(按任意键重试 ) os.system(cls)
经验分享 程序员 微信小程序 职场和发展