|
|
发表于 2022-11-29 14:12:53
|
显示全部楼层
最近学习tkinter,所以随便找了个YouTube视频看,突发奇想能不能给他做个分析真实视频地址以供下载的GUI,然后就各种搜,最后用pytube+tkinter+pyinstaller弄出个这么个东西。
代码在GitHub上:https://github.com/jaycka/Youtube_downloader_GUI/blob/main/youtube.py
可执行文件在这:链接:https://pan.baidu.com/s/1EawTbka5Ai_bWCGet45-QQ
提取码:n502
from pytube import YouTubefrom tkinter import *# 复制到剪贴板 def copy_job(text): root.clipboard_clear() root.clipboard_append(text)# 源地址解析按键捆绑函数def get_download_address(): global PROGRESSIVE_VIDEO url = entry1.get() yt = YouTube(url) legacy = yt.vid_info['streamingData']['formats'] + yt.vid_info['streamingData']['adaptiveFormats'] for i in range(len(legacy)): label0 = Label(root, text = '%s %s@%sfps/bitrate' %('整片' if legacy['itag'] in PROGRESSIVE_VIDEO.keys() else legacy['mimeType'].split(';')[0], legacy['qualityLabel'] if 'qualityLabel' in legacy.keys() else legacy['audioQuality'], legacy['fps'] if 'fps' in legacy.keys() else legacy['bitrate']), justify='left',anchor='w', font=("Segoe UI",10)).grid(row=1+i,sticky='W') label1 = Label(root, text = legacy['url'],justify='left',anchor='w', width = 50, font=("Segoe UI",10)).grid(row=1+i, column=1,sticky='W') button = Button(root, text='复制源地址', command=lambda i=i:copy_job(legacy['url'])).grid(row=1+i, column=2,sticky='W')#root windowroot = Tk()root.resizable(width=False, height=False)root.title ('Youtube视频地址解析器')# text box for url inputlb1 = Label(root, text='Youtube视频地址', fg='black', font=("Segoe UI",10)).grid(row=0, column=0,sticky='W')entry1 = Entry(root,width=50)entry1.grid(row=0, column=1,sticky='W')button1 = Button(root, text='解析源地址', command=get_download_address)button1.grid(row=0, column=2, sticky='W')# itag分类PROGRESSIVE_VIDEO = { 5: ("240p", "64kbps"), 6: ("270p", "64kbps"), 13: ("144p", None), 17: ("144p", "24kbps"), 18: ("360p", "96kbps"), 22: ("720p", "192kbps"), 34: ("360p", "128kbps"), 35: ("480p", "128kbps"), 36: ("240p", None), 37: ("1080p", "192kbps"), 38: ("3072p", "192kbps"), 43: ("360p", "128kbps"), 44: ("480p", "128kbps"), 45: ("720p", "192kbps"), 46: ("1080p", "192kbps"), 59: ("480p", "128kbps"), 78: ("480p", "128kbps"), 82: ("360p", "128kbps"), 83: ("480p", "128kbps"), 84: ("720p", "192kbps"), 85: ("1080p", "192kbps"), 91: ("144p", "48kbps"), 92: ("240p", "48kbps"), 93: ("360p", "128kbps"), 94: ("480p", "128kbps"), 95: ("720p", "256kbps"), 96: ("1080p", "256kbps"), 100: ("360p", "128kbps"), 101: ("480p", "192kbps"), 102: ("720p", "192kbps"), 132: ("240p", "48kbps"), 151: ("720p", "24kbps"), 300: ("720p", "128kbps"), 301: ("1080p", "128kbps"),}root.mainloop()
运行:很straightforward:
1.打开直接粘贴youtube视频地址,
2.然后点击‘解析源地址’
3.等待地址出现,如果没出现就再次点击解析源地址,找到想要的视频源后,可以点击‘复制源地址’
4.然后输入到浏览器里就可以右键保存或直接点击下载了。
|
|