日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

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

一.準(zhǔn)備工作

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

二.預(yù)覽0.復(fù)制抖音分享短鏈接

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

1.啟動

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

2.運(yùn)行

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

3.結(jié)果

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

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

三.設(shè)計流程

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

1.總體設(shè)計

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

2.詳細(xì)設(shè)計

2.1 download()函數(shù)

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

2.2 parse()函數(shù)

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

四.源代碼

#--*coding:utf-8*--from tkinter import *from tkinter import ttkfrom tkinter import messageboximport osimport jsonimport threadingimport requestsfrom PIL import Image,ImageTk’’’抖音無水印視頻下載工具難點:1.視頻接口 2.進(jìn)度條’’’def clean_progressbar(): # 清空進(jìn)度條 fill_line = canvas.create_rectangle(1.5, 1.5, 0, 23, width=0, fill='white') x = 500 # 未知變量,可更改 n = 600 / x # 465是矩形填充滿的次數(shù) for t in range(x): n = n + 600 / x # 以矩形的長度作為變量值更新 canvas.coords(fill_line, (0, 0, n, 60)) window.update()def download(): #先清空進(jìn)度條,再下載 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’ #下載與進(jìn)度條 chunk_size = 1024 # 每一塊的大小,每次下載塊的大小 file_size = int(r2.headers[’Content-Length’]) # 提取出來的文件大小為string格式,使用int()強(qiáng)制轉(zhuǎn)化 fill_line = canvas.create_rectangle(1.5, 1.5, 0, 23, width=0, fill='green') raise_data = 600 / (file_size / chunk_size) # 增量大小,600為進(jìn)度條的長度 _size = 0 # 已經(jīng)下載文件的大小 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))#解析出無水印視頻下載地址以及視頻標(biāo)題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 ’輸入地址有誤’,’請檢查!’#調(diào)用jiexi()將視頻標(biāo)題和下載鏈接顯示在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) #去除標(biāo)題中的表情以及符號,只保留漢字 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,’請在上面輸入地址!’)#打開文件夾函數(shù)def open_dir(): try: os.mkdir(video_path) except: pass abs_path=os.path.abspath(video_path) os.startfile(abs_path)#退出窗口函數(shù)def quit_window(): window.destroy()#函數(shù)打包進(jìn)線程def thread_it(func,*args): t=threading.Thread(target=func,args=args) t.setDaemon(True)#先守護(hù)主線程 t.start()#再啟動if __name__ == ’__main__’: video_path=’./video/’ window=Tk() window.title(’Downloader-v1.0’) width=295 height=380 screenWidth = window.winfo_screenwidth() # 獲取顯示區(qū)域的寬度 screenHeight = window.winfo_screenheight() # 獲取顯示區(qū)域的高度 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=’ 敬告:本軟件僅供學(xué)習(xí)交流使用!’,width=30,justify=’center’,foreground=’red’) l1.pack(fill=X) f4=ttk.LabelFrame(window,text=’下載進(jìn)度:’) 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/ ’’’五.說明&總結(jié)5.1說明:

所示截圖均為舉例,本軟件僅供學(xué)習(xí)交流使用!

5.2總結(jié):

本次使用python的tkinter撰寫了一個抖音無水印視頻爬取GUI工具,因為中間寫過幾個GUI界面了對tkinter的widget有些熟悉了,線程用起來更加熟練。他山之石,可以攻玉,本次思路、代碼的撰寫參考了:

www.jb51.net/article/205619.htm

在此感謝幫助我的人!,工具已經(jīng)打包上傳到了藍(lán)奏云https://wws.lanzous.com/isCLul0dlfa, 思路、代碼方面有什么不足歡迎各位大佬指正、批評!

以上就是python gui開發(fā)——制作抖音無水印視頻下載工具(附源碼)的詳細(xì)內(nèi)容,更多關(guān)于python 抖音視頻下載的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: 抖音 Python
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
成人美女视频| 亚洲欧洲国产精品一区| 国精品产品一区| 国产一区二区精品久| 天堂va蜜桃一区二区三区| 日韩在线短视频| 欧美日韩中出| 美女国产精品| 荡女精品导航| 国产精品成人一区二区网站软件| 日韩精品免费一区二区三区| 日韩av一区二区三区四区| 在线一区免费| 国产精品mm| 国产精品视频一区二区三区| 国产欧美日韩亚洲一区二区三区| 日韩高清中文字幕一区| 久久国产直播| 午夜精品网站| 中文av在线全新| 欧美国产美女| 正在播放日韩精品| 国产精品日韩久久久| 欧洲av一区二区| 精品欧美激情在线观看| 91久久久久| 亚洲青青久久| 国产精品伊人| 成人影视亚洲图片在线| 日韩成人亚洲| 亚洲免费成人| 欧美精品福利| 高清av一区| 99久久激情| 水野朝阳av一区二区三区| 日韩国产精品久久久| 精品国产欧美| 99视频精品全部免费在线视频| 五月激情久久| 美女黄网久久| 国产精品午夜一区二区三区| 最新中文字幕在线播放| 婷婷成人基地| 日韩动漫一区| 国产美女高潮在线| 欧美日韩少妇| 快she精品国产999| 国产福利一区二区三区在线播放| 97人人精品| 国产精品毛片在线| 国产精品日本一区二区三区在线| 精品久久99| 亚洲综合精品四区| 国产欧美日韩精品高清二区综合区| 精品国产91| 精品91久久久久| 欧美成人精品午夜一区二区| 国内精品福利| 国产免费久久| 欧美 日韩 国产一区二区在线视频 | 美国三级日本三级久久99| 欧美片第1页综合| 91精品国产福利在线观看麻豆| 日韩一区精品视频| 国产精品视频一区二区三区综合 | 日韩精品中文字幕第1页| 久久香蕉精品| 亚洲天堂资源| 日韩精品欧美成人高清一区二区| 91视频一区| 日本伊人午夜精品| 久久三级福利| 国产精品一区二区三区www| 欧美日韩在线网站| 欧美激情视频一区二区三区在线播放| 免费国产自久久久久三四区久久| 国产亚洲一区| 亚洲成人三区| 国产极品久久久久久久久波多结野| 国产婷婷精品| 天堂√中文最新版在线| 青草av.久久免费一区| 久久精品av| 久久精品理论片| 日韩精品免费视频人成| 国产精品99一区二区| 久久只有精品| 水蜜桃久久夜色精品一区的特点| 91综合网人人| 国产图片一区| 亚洲久久一区| 午夜欧美精品| 日韩精品dvd| 日韩成人精品一区二区| 日韩免费精品| 免费观看在线综合| 91精品国产调教在线观看| 国际精品欧美精品| 欧美日韩亚洲一区二区三区在线| 在线精品观看| 一区二区视频欧美| 亚洲国产专区| 久久精品91| 黑森林国产精品av| 精品国产精品久久一区免费式| 欧美日韩精品一区二区三区视频| 亚洲一区日韩| 欧美成人日韩| 日韩大片在线播放| 精品视频一区二区三区四区五区| 欧美在线精品一区| 日韩国产欧美视频| 天堂久久一区| 亚洲开心激情| 亚洲一区二区三区在线免费| 亚洲欧美日本日韩| 日韩一区二区久久| 在线亚洲免费| 亚洲综合日韩| 蜜臀av亚洲一区中文字幕| 亚洲少妇在线| 蜜臀91精品一区二区三区| 在线成人直播| 亚洲五月婷婷| 中文日韩欧美| 在线视频亚洲欧美中文| 亚洲三级视频| 日韩av电影一区| 日韩激情一区| 欧美一级精品| 日韩视频中文| 亚洲丝袜美腿一区| 日韩三区四区| 国产精成人品2018| 久久精品国产99国产| 精品国产中文字幕第一页| 精品资源在线| 日本一二区不卡| 日韩网站中文字幕| 美女网站一区| 日韩在线一二三区| 欧美亚洲一级| 日韩不卡一区| 欧美大黑bbbbbbbbb在线| 久久国产精品久久w女人spa| 亚洲精品国模| 国产精品地址| 在线亚洲人成| 不卡一区2区| 综合干狼人综合首页| 欧美精品福利| а√天堂8资源中文在线| 欧美日韩第一| 视频一区国产视频| 欧美亚洲tv| 国际精品欧美精品| 免费观看久久av| 亚洲精品麻豆| 精品亚洲a∨| 成人羞羞在线观看网站| 午夜亚洲福利在线老司机| 国产无遮挡裸体免费久久| 日本久久综合| 亚洲欧美不卡| 国产精品一区毛片| 99久久久久| 亚洲精品九九| 久久精品国产网站| 色老板在线视频一区二区| 青青草国产精品亚洲专区无| 国产精选在线| 免费视频久久| 你懂的国产精品| 不卡一区综合视频| 国产调教精品| 久久亚洲在线| 91看片一区| 日本视频中文字幕一区二区三区| 97人人精品| 一区二区国产精品| 精品日本视频| 丝袜诱惑制服诱惑色一区在线观看| 欧美在线黄色| 日韩精品电影| 日韩免费精品| 99久久亚洲精品蜜臀| 日本欧美一区二区| 欧美成人基地| 欧美日韩99| 99国产精品私拍| 精品国产99| 日韩一区二区三区精品 | 国产一区二区三区自拍| 日韩在线视频一区二区三区| 久久一区精品| 欧美在线综合| 福利精品一区| 亚洲精品激情| 久久中文字幕av| 国产精品s色|