hello,大家好啊,失踪人口回归了 [捂脸]!本次使用tkinter撰写一篇 抖音无水印视频下载,目的很纯粹,就是为了设置 微信状态视频。本篇博文中,我会写下我的代码撰写思路以及想写设计流程,代码放在了第四节,工具打包好放在了 蓝奏云,慢慢看,后面有链接。
一.准备工作
本次要用到以下依赖库:re json os random tkinter threading requests pillow 其中后两个需要安装后使用
二.预览
0.复制抖音分享短链接
1.启动
2.运行
3.结果
(小姐姐挺漂亮,视频确实无水印)
三.设计流程
设计流程分为总体设计和详细设计,这里我会使用viso画出几个流程图,用以展示我的思路,详细设计部分列举了两个函数实现的具体流程。
1.总体设计
2.详细设计
2.1 download()函数
2.2 parse()函数
四.源代码
#--*coding:utf-8*-- from tkinter import * from tkinter import ttk from tkinter import messagebox import os import json import threading import requests from PIL import Image,ImageTk ''' 抖音无水印视频下载工具 难点:1.视频接口 2.进度条 ''' def clean_progressbar(): # 清空进度条 fill_line = canvas.create_rectangle(1.5, 1.5, 0, 23, width=0, fill="white") x = 500 # 未知变量,可更改 n = 600 / x # 465是矩形填充满的次数 for t in range(x): n = n + 600 / x # 以矩形的长度作为变量值更新 canvas.coords(fill_line, (0, 0, n, 60)) window.update() def download(): #先清空进度条,再下载 clean_progressbar() real_link=t1.get('0.0',END).split('**')[-1] headers2 = { 'sec-fetch-dest': 'document', 'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Mobile Safari/537.36' } r2 = requests.get(real_link, headers=headers2, stream=True) try: os.mkdir(video_path) except: pass file =video_path+ video_title + '.mp4' #下载与进度条 chunk_size = 1024 # 每一块的大小,每次下载块的大小 file_size = int(r2.headers['Content-Length']) # 提取出来的文件大小为string格式,使用int()强制转化 fill_line = canvas.create_rectangle(1.5, 1.5, 0, 23, width=0, fill="green") raise_data = 600 / (file_size / chunk_size) # 增量大小,600为进度条的长度 _size = 0 # 已经下载文件的大小 with open(file, "wb") as f: n=0 for data in r2.iter_content(chunk_size): # inter_content:用于边下载边存硬盘,每次下载chunk_size大小的块 f.write(data) n = n + raise_data canvas.coords(fill_line, (0, 0, n, 60)) window.update() #下载完以后清空 t1.delete('0.0',END) t1.insert(END,'{title}.mp4\n下载完成!'.format(title=video_title)) #解析出无水印视频下载地址以及视频标题 def parse(share_link): # 先处理短链接获取item_ids headers = { 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', 'sec-fetch-dest': 'document', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36' } # 使用allow_redirects=False禁止重定向,拿到重定向的url r1 = requests.get(share_link, allow_redirects=False, headers=headers) item_ids = re.findall(r'video/(\d+)/', r1.text) interface_url='https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/"%dx%d+%d+%d" % (width, height, left, top)) window.resizable(0,0) window.iconbitmap('./rely/my_favicon.ico') photo=Image.open('./rely/dy_logo.png') photo=photo.resize((200,50)) image=ImageTk.PhotoImage(photo) l0=ttk.Label(window,imag=image,justify='center') l0.pack() f1=ttk.Labelframe(window,text='视频链接地址:') f1.place(x=40,y=55) e1=ttk.Entry(f1,width=30) e1.pack() f2=ttk.Labelframe(window,text='信息:') f2.place(x=40,y=102) t1=Text(f2,height=6,width=30) t1.pack() t1.insert(END,'{_xing}\n将抖音分享链接地址粘贴在上面输入框中,本程序会自动解析出视频的下载地址并且显示在这里\n{_xing}'.format(_xing='*'*29)) b1=ttk.Button(window,text='解析',command=lambda :thread_it(pre_parse)) b1.place(x=40,y=265) b2=ttk.Button(window,text='下载',state='disable',command=lambda :thread_it(download)) b2.place(x=170,y=265) b3=ttk.Button(window,text='打开文件夹',command=open_dir) b3.place(x=40,y=298) b4=ttk.Button(window,text='退出',command=quit_window) b4.place(x=170,y=298) f3=ttk.Labelframe(window) f3.place(x=40,y=329) l1=ttk.Label(f3,text=' 敬告:本软件仅供学习交流使用!',width=30,justify='center',foreground='red') l1.pack(fill=X) f4=ttk.LabelFrame(window,text='下载进度:') f4.place(x=40,y=210) canvas = Canvas(f4, width=210, height=20,bg="white") canvas.pack(side='left') l2_var=StringVar() l2=ttk.Label(f4,textvariable=l2_var,text='未下载') l2.pack(side='left',anchor=S) window.mainloop() ''' test_url: https://v.douyin.com/JcxTMj2/ '''
五.说明&总结
5.1说明:
所示截图均为举例,本软件仅供学习交流使用!
5.2总结:
本次使用python的tkinter撰写了一个抖音无水印视频爬取GUI工具,因为中间写过几个GUI界面了对tkinter的widget有些熟悉了,线程用起来更加熟练。他山之石,可以攻玉,本次思路、代码的撰写参考了:
www.jb51.net/article/205619.htm
在此感谢帮助我的人!,工具已经打包上传到了蓝奏云https://wws.lanzous.com/isCLul0dlfa
, 思路、代码方面有什么不足欢迎各位大佬指正、批评!
以上就是python gui开发——制作抖音无水印视频下载工具(附源码)的详细内容,更多关于python 抖音视频下载的资料请关注其它相关文章!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]