电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python gui開發——制作抖音無水印視頻下載工具(附源碼)

瀏覽:130日期:2022-06-28 09:31:10

hello,大家好啊,失蹤人口回歸了 [捂臉]!本次使用tkinter撰寫一篇 抖音無水印視頻下載,目的很純粹,就是為了設置 微信狀態視頻。本篇博文中,我會寫下我的代碼撰寫思路以及想寫設計流程,代碼放在了第四節,工具打包好放在了 藍奏云,慢慢看,后面有鏈接。

一.準備工作

本次要用到以下依賴庫:re json os random tkinter threading requests pillow 其中后兩個需要安裝后使用

二.預覽0.復制抖音分享短鏈接

python gui開發——制作抖音無水印視頻下載工具(附源碼)

1.啟動

python gui開發——制作抖音無水印視頻下載工具(附源碼)

2.運行

python gui開發——制作抖音無水印視頻下載工具(附源碼)

3.結果

python gui開發——制作抖音無水印視頻下載工具(附源碼)

(小姐姐挺漂亮,視頻確實無水印)

三.設計流程

設計流程分為總體設計和詳細設計,這里我會使用viso畫出幾個流程圖,用以展示我的思路,詳細設計部分列舉了兩個函數實現的具體流程。

1.總體設計

python gui開發——制作抖音無水印視頻下載工具(附源碼)

2.詳細設計

2.1 download()函數

python gui開發——制作抖音無水印視頻下載工具(附源碼)

2.2 parse()函數

python gui開發——制作抖音無水印視頻下載工具(附源碼)

四.源代碼

#--*coding:utf-8*--from tkinter import *from tkinter import ttkfrom tkinter import messageboximport osimport jsonimport threadingimport requestsfrom 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}.mp4n下載完成!’.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/?item_ids={}’.format(’’.join(item_ids)) r=requests.get(interface_url,headers=headers) _json=json.loads(r.text) try: item_list=_json.get(’item_list’)[0] video_title=item_list.get(’desc’)#視頻名稱 watermark_video_link=item_list.get(’video’).get(’play_addr’).get(’url_list’)[0]#視頻帶水印地址 real_video_link=watermark_video_link.replace(’playwm’,’play’)#視頻無水印地址 return video_title,real_video_link except TypeError: messagebox.showerror(’提示’,’請檢查輸入地址!’) t1.delete(’0.0’,END) return ’輸入地址有誤’,’請檢查!’#調用jiexi()將視頻標題和下載鏈接顯示在Text Widget中def pre_parse(): share_link=e1.get() if len(share_link)!=0: global video_title, real_video_link try: video_title, real_video_link=parse(share_link) except TypeError: t1.insert(END,’輸入地址有誤,請檢查!’) t1.delete(’0.0’,END) #去除標題中的表情以及符號,只保留漢字 try: t1.insert(END, video_title + ’n’ +’*’*30+ real_video_link) b2.config(state=’normal’) except TclError: filted_title=re.findall(r’[u4E00-u9FA5s]+’,video_title) t1.insert(END,’’.join(filted_title)+’n’+’*’*30+real_video_link) b2.config(state=’normal’) else: messagebox.showerror(’錯誤’,’請輸入地址!’) t1.delete(’0.0’,END) t1.insert(END,’請在上面輸入地址!’)#打開文件夾函數def open_dir(): try: os.mkdir(video_path) except: pass abs_path=os.path.abspath(video_path) os.startfile(abs_path)#退出窗口函數def quit_window(): window.destroy()#函數打包進線程def thread_it(func,*args): t=threading.Thread(target=func,args=args) t.setDaemon(True)#先守護主線程 t.start()#再啟動if __name__ == ’__main__’: video_path=’./video/’ window=Tk() window.title(’Downloader-v1.0’) width=295 height=380 screenWidth = window.winfo_screenwidth() # 獲取顯示區域的寬度 screenHeight = window.winfo_screenheight() # 獲取顯示區域的高度 left = (screenWidth - width) / 2 top = (screenHeight - height) / 2 window.geometry('%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 抖音視頻下載的資料請關注好吧啦網其它相關文章!

標簽: 抖音 Python
相關文章:
主站蜘蛛池模板: 玉米加工设备,玉米深加工机械,玉米糁加工设备.玉米脱皮制糁机 华豫万通粮机 | 粉碎机_塑料粉碎机_塑料破碎机厂家-星标机械 | 本安接线盒-本安电路用接线盒-本安分线盒-矿用电话接线盒-JHH生产厂家-宁波龙亿电子科技有限公司 | 户外健身路径_小区健身器材_室外健身器材厂家_价格-浩然体育 | ?水马注水围挡_塑料注水围挡_防撞桶-常州瑞轩水马注水围挡有限公司 | 电动葫芦|环链电动葫芦-北京凌鹰名优起重葫芦 | 安平县鑫川金属丝网制品有限公司,防风抑尘网,单峰防风抑尘,不锈钢防风抑尘网,铝板防风抑尘网,镀铝锌防风抑尘网 | 臭氧实验装置_实验室臭氧发生器-北京同林臭氧装置网 | 湖南印刷厂|长沙印刷公司|画册印刷|挂历印刷|台历印刷|杂志印刷-乐成印刷 | 聚丙烯酰胺PAM-聚合氯化铝PAC-絮凝剂-河南博旭环保科技有限公司 巨野电机维修-水泵维修-巨野县飞宇机电维修有限公司 | 撕碎机_轮胎破碎机_粉碎机_回收生产线厂家_东莞华达机械有限公司 | 学习虾-免费的学习资料下载平台 雪花制冰机(实验室雪花制冰机)百科 | 一级建造师培训_一建培训机构_中建云筑建造师培训网校 | 酒店品牌设计-酒店vi设计-酒店标识设计【国际级】VI策划公司 | 北京自然绿环境科技发展有限公司专业生产【洗车机_加油站洗车机-全自动洗车机】 | uv固化机-丝印uv机-工业烤箱-五金蚀刻机-分拣输送机 - 保定市丰辉机械设备制造有限公司 | 粉末包装机-给袋式包装机-全自动包装机-颗粒-液体-食品-酱腌菜包装机生产线【润立机械】 | 道达尔润滑油-食品级润滑油-道达尔导热油-合成导热油,深圳道达尔代理商合-深圳浩方正大官网 | Magnescale探规,Magnescale磁栅尺,Magnescale传感器,Magnescale测厚仪,Mitutoyo光栅尺,笔式位移传感器-苏州连达精密量仪有限公司 | 压力控制器,差压控制器,温度控制器,防爆压力控制器,防爆温度控制器,防爆差压控制器-常州天利智能控制股份有限公司 | 大型果蔬切片机-水果冬瓜削皮机-洗菜机切菜机-肇庆市凤翔餐饮设备有限公司 | 电液推杆生产厂家|电动推杆|液压推杆-扬州唯升机械有限公司 | 艺术涂料_进口艺术涂料_艺术涂料加盟_艺术涂料十大品牌 -英国蒙太奇艺术涂料 | 二手Sciex液质联用仪-岛津气质联用仪-二手安捷伦气质联用仪-上海隐智科学仪器有限公司 | HYDAC过滤器,HYDAC滤芯,现货ATOS油泵,ATOS比例阀-东莞市广联自动化科技有限公司 | R507制冷剂,R22/R152a制冷剂厂家-浙江瀚凯制冷科技有限公司 | 小程序开发公司-小程序制作-微信小程序开发-小程序定制-咏熠软件 | U拓留学雅思一站式服务中心_留学申请_雅思托福培训 | 刺绳_刀片刺网_刺丝滚笼_不锈钢刺绳生产厂家_安平县浩荣金属丝网制品有限公司-安平县浩荣金属丝网制品有限公司 | 广域铭岛Geega(际嘉)工业互联网平台-以数字科技引领行业跃迁 | 台湾HIWIN上银直线模组|导轨滑块|TBI滚珠丝杆丝杠-深圳汉工 | 智能风向风速仪,风速告警仪,数字温湿仪,综合气象仪(气象五要素)-上海风云气象仪器有限公司 | 污泥烘干机-低温干化机-工业污泥烘干设备厂家-焦作市真节能环保设备科技有限公司 | 硬度计_影像测量仪_维氏硬度计_佛山市精测计量仪器设备有限公司厂家 | 盘式曝气器-微孔曝气器-管式曝气器-曝气盘-斜管填料 | 郑州市前程水处理有限公司 | 工程管道/塑料管材/pvc排水管/ppr给水管/pe双壁波纹管等品牌管材批发厂家-河南洁尔康建材 | NMRV减速机|铝合金减速机|蜗轮蜗杆减速机|NMRV减速机厂家-东莞市台机减速机有限公司 | 档案密集架,移动密集架,手摇式密集架,吉林档案密集架-厂家直销★价格公道★质量保证 | 中矗模型-深圳中矗模型设计有限公司 | 涂层测厚仪_光泽度仪_uv能量计_紫外辐照计_太阳膜测试仪_透光率仪-林上科技 | 广东之窗网 |