先决条件: Python GUI – Tkinter
【创建用于使用Python下载YouTube视频的GUI】YouTube是一个非常受欢迎的视频共享网站。从YouTube下载视频/播放列表是一项繁琐的任务。通过Downloader下载该视频或尝试从随机网站下载该视频, 这会增加舔你个人数据的风险。使用Python Tkinter包, 此任务非常简单, 高效, 安全。几乎没有群码可以为你下载视频。为此, 有两个Python库–Tkinter和pytube.
所需模块
pytube:
pytube是一个轻量级, 易于使用, 无依赖的Python库, 用于从web.pytube下载视频, 而不是自动配置的库。你需要先安装它, 然后才能使用它。当你拥有pip时, 安装pytube很容易。在终端或命令提示符中, 键入以下命令以安装pytube。
如果你使用的是Mac OS X或Linux, 则以下两个命令之一可能会为你工作:
pip安装pytube git clone git://github.com/NFicano/pytube.git pytube | cd pytube | python setup.py安装如果你在Window的
pip install pytube3
Tkinter
:
Tkinter是Python与Tk GUI工具包的绑定。它是Tk GUI工具包的标准Python界面, 或者简单地说Tkinter用作Python图形用户界面。 Tkinter是本机库, 使用时无需外部安装, 只需导入即可。
下面是实现。
# Importing necessary packages
import tkinter as tk
from tkinter import *
from pytube import YouTube
from tkinter import messagebox, filedialog# Defining CreateWidgets() function
# to create necessary tkinter widgets
def Widgets():
link_label = Label(root, text = "YouTube link:" , bg = "#E8D579" )
link_label.grid(row = 1 , column = 0 , pady = 5 , padx = 5 )root.linkText = Entry(root, width = 55 , textvariable = video_Link)
root.linkText.grid(row = 1 , column = 1 , pady = 5 , padx = 5 , columnspan = 2 )destination_label = Label(root, text = "Destination:" , bg = "#E8D579" )
destination_label.grid(row = 2 , column = 0 , pady = 5 , padx = 5 )root.destinationText = Entry(root, width = 40 , textvariable = download_Path)
root.destinationText.grid(row = 2 , column = 1 , pady = 5 , padx = 5 )browse_B = Button(root, text = "Browse" , command = Browse, width = 10 , bg = "#05E8E0" )
browse_B.grid(row = 2 , column = 2 , pady = 1 , padx = 1 )Download_B = Button(root, text = "Download" , command = Download, width = 20 , bg = "#05E8E0" )
Download_B.grid(row = 3 , column = 1 , pady = 3 , padx = 3 )# Defining Browse() to select a
# destination folder to save the videodef Browse():
# Presenting user with a pop-up for
# directory selection. initialdir
# argument is optional Retrieving the
# user-input destination directory and
# storing it in downloadDirectory
download_Directory = filedialog.askdirectory(initialdir = "YOUR DIRECTORY PATH" )# Displaying the directory in the directory
# textbox
download_Path. set (download_Directory)# Defining Download() to download the video
def Download():# getting user-input Youtube Link
Youtube_link = video_Link.get()# select the optimal location for
# saving file's
download_Folder = download_Path.get()# Creating object of YouTube()
getVideo = YouTube(Youtube_link)# Getting all the available streams of the
# youtube video and selecting the first
# from the
videoStream = getVideo.streams.first()# Downloading the video to destination
# directory
videoStream.download(download_Folder)# Displaying the message
messagebox.showinfo( "SUCCESSFULLY" , "DOWNLOADED AND SAVED IN\n"
+ download_Folder)# Creating object of tk class
root = tk.Tk()# Setting the title, background color
# and size of the tkinter window and
# disabling the resizing property
root.geometry( "600x120" )
root.resizable( False , False )
root.title( "YouTube_Video_Downloader" )
root.config(background = "#000000" )# Creating the tkinter Variables
video_Link = StringVar()
download_Path = StringVar()# Calling the Widgets() function
Widgets()# Defining infinite loop to run
# application
root.mainloop()
输出如下:
文章图片
首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。
推荐阅读
- 如何理解路由器中最长的前缀匹配(详细图解)
- CSS中的高级选择器用法解释和指南
- CSS网站页面布局与美化实例教程(div+css)
- Twitter面试经验分享和解析|S1
- PHP如何使用date_diff()函数(代码示例)
- SCAN和CSCAN磁盘调度算法之间有什么区别()
- Linux中的proc文件系统介绍和指南
- Internet协议版本6(IPv6)标头详细解读
- 本文教你安装ie11 win7 64位原版失败的原因