如何使用Python创建一个简单的YouTube视频下载器

1,173 阅读4分钟

使用Python创建一个简单的YouTube视频下载器

YouTube是一个国际知名的分享视频的网站。不幸的是,当你使用在线下载器下载视频或试图从一个随机的网站获取视频时,你将面临个人信息被盗的危险。

简介

在使用Python Tkinter模块时,下载视频的任务是令人难以置信的直接、高效和安全。此外,它直接从YouTube上为你获取视频。

要求

要开发一个视频下载器,你应该具备。

  • 对Python编程语言的理解。
  • 在你的电脑上安装Python软件包。
  • 一个你选择的编辑器。
  • Tkinter- 一个用于创建GUI的Python模块。
  • Pytube- 从YouTube下载视频。

安装

在你开始开发过程之前,需要准备好各种要求。Python环境是这个项目的首要条件。你可以按照这些指令在你的电脑上设置一个Python环境。需要安装一个关键的模块,这是开发过程的开始。

安装PyTube模块

要使用pip 安装Pytube,在你的机器上打开你的命令提示符CLI,并输入以下命令。

pip install PyTube

安装Tkinter

像PyTube一样,pip 命令用于安装任何其他Python模块。例如,安装Tkinter ,如下图所示,因为它是开发用户界面所需要的。

pip install Tkinter

如果你在安装时遇到错误,请确保你的Python包是使用正确的默认值正确安装的。一旦安装成功,你就可以按照下面开发部分的指示开始对你的API进行编码。

构建API/GUI

在这一部分,你将设计应用程序的界面。由于该文章建立了下载功能,所以界面将是最简约的。

1.导入项目中需要的库

安装完模块后,你需要导入你的应用程序中需要的库。导入它们可以使它们作为你项目的一部分。下面是导入它们的正确方法。

# import all Tkinter libraries from the module
from Tkinter import * 
# From the  installed Pytube module, import the youtube library
from Pytube import YouTube 

2.创建API窗口

root = Tk()
root.geometry('500 X 300') # Size of the window
root.resizable(0, 0) # makes the window adjustable with its features
root.title('youtube downloader')

root.mainloop()

当你运行到目前为止的代码时,会显示一个空的窗口,上面的代码中有标题。其余的代码将落在Tk()mainloop() 之间。

3.创建链接条目

在这里你将创建一个条目,在那里你可以粘贴你的链接。代码如下。

Label(root, text="Download Youtube videos for free", font='san-serif 14 bold').pack()
link = StringVar() # Specifying the variable type
Label(root, text="Paste your link here", font='san-serif 15 bold').place(x=150, y=55)
link_enter = Entry(root, width=70, textvariable=link).place(x=30, y=85)

运行该代码后,将出现如下照片所示的窗口。

result

4.创建下载按钮

下载按钮允许你通过调用下一步的下载功能来下载视频。它只需要一行代码,如下面的代码块所示。

Button(root, text='Download', font='san-serif 16 bold', bg='red', padx=2,command="download").place(x=100, y=150)
 

命令download 是当按钮被按下时启动下载过程的属性。它从下面创建的下载函数中被调用,以便从YouTube获取视频。

创建下载函数

到此为止,你已经做了一个GUI,你可以从youtube上粘贴你的链接,但下载按钮还没有发挥作用。因此,为了使用URL获取视频,你将不得不创建一个叫做下载按钮的下载函数。

下面的代码是一个名为download 的python函数,它读取输入的URL,连接到youtube,并下载视频。评论帮助你了解每一行代码的重要性和它的作用。

def download():
    url = YouTube(str(link.get())) #This captures the link(url) and locates it from YouTube.
    video = url.streams.first() # This captures the streams available for downloaded for the video i.e. 360p, 720p, 1080p. etc.
    video.download() # This is the method with the instruction to download the video.
    Label(root, text="Downloaded", font="arial 15").place(x=100, y=120) #Once the video is downloaded, this label `downloaded` is displayed to show dowload completion.

复制并粘贴一个YouTube视频的链接来测试你的API,点击下载按钮。当登录到网络时,该视频被保存在你的项目文件夹中。完成的GUI就是现在。

final image

结论

到此为止,我们已经成功地用Python构建了一个youtube视频下载器应用程序。首先,为了渲染图形,我们使用了著名的Tkinter包。接下来,我们使用Pytube库来创建一个功能齐全的GUI,从Youtube上获取视频。