Если вы уже пытались скачать видео с YouTube, то вам знакомо разочарование от просмотра миллиона рекламных объявлений, чтобы получить файл размером в два мегабайта. В этой статье мы создадим собственный простой загрузчик видео с YouTube с помощью python.
Требования
Прежде чем мы начнем, у вас должны быть:
- python. Если нет, следуйте этому руководству, чтобы установить его.
- редактор кода
- Pytube
- Tkinter
Pytube — это легкая библиотека Python для загрузки видео с youtube. Tkinter — это стандартная библиотека GUI (графический интерфейс пользователя) для python.
Чтобы установить Pytube и Tkinter, выполните следующие команды в CLI (интерфейс командной строки) с помощью pip installer.
pip install tk
Pip install pytube
Если вы используете python 2.x, установите Tkinter как Tkinter (обратите внимание на заглавную букву T).
pip install Tkinter
Для создания загрузчика YouTube мы выполним следующие шаги:
- Импортируйте необходимые библиотеки
- Создать окно отображения
- Создать ввод ссылки
- Создание функции загрузки
Шаг 1: Импорт необходимых библиотек
Нам нужно импортировать модули, которые мы установили.
from tkinter import * # import all libraries from tkinter module
from pytube import YouTube # import YouTube library from pytube module
Шаг 2: Создайте окно отображения
root = Tk() # initializes tkinter to create display window
root.geometry('400x250') # width and height of the window
root.resizable(0, 0) # sets fix size of window
root.title(' our awesome youtube downloader') # gives the window a title
Label(root,text = 'Youtube Video Downloader', font ='arial 20 bold').pack()
# The rest of the code
root.mainloop() # executes when we want to run the program
- Виджет Label() выше отображает тексты, которые пользователи не могут изменять.
- root — это имя окна.
Когда мы запускаем приведенный выше код, он дает нам пустое окно. Оставшийся код будет находиться между Tk() и mainloop(). В результате мы получим окно, как показано ниже:
Шаг 3: Создание записи ссылки
Следующим шагом будет создание записи, в которую мы сможем вставить ссылку на YouTube.
var = StringVar() # specifies variable type
Label(root, text = 'Paste Link Here:', font = 'arial 15 bold').place(x= 100 , y = 60)
label = Message( root, textvariable = var, relief = RAISED )
link_enter = Entry(root, width = 70,textvariable = var).place(x = 32, y = 90)
var.set('Paste Link Here:')
- var сохраняет введенный URL в виде строки.
- Виджет Entry() используется, когда мы хотим создать текстовое поле.
- textvariable используется для получения текущего значения текстовой переменной для виджета entry.
- place() используется для позиционирования виджета в определенном месте.
Вывод приведенного выше кода выглядит так, как показано на рисунке ниже:
Шаг 4: Создание функции загрузки
Теперь, когда наше окно готово к работе, нам нужно создать функцию для загрузки видео. Нам также нужна кнопка, которая при нажатии будет вызывать эту функцию.
def Downloader():
url =YouTube(str(var.get())) # gets youtube link from link entered and converts it to string
video = url.streams.first() # video is downloaded in the first stream the video is in
video.download() # initializes the download
Label(root, text = 'DOWNLOADED', font = 'arial 15').place(x= 180 , y = 210) # shows "DOWNLOADED" when the download is complete
Button(root,text = 'DOWNLOAD', font = 'arial 15 bold' ,bg = 'red', padx = 2, command = Downloader).place(x=180 ,y = 150)
Функция Downloader выше принимает введенный URL YouTube, ищет первый поток (360p, 720p, 1080p e.t.c) и загружает видео. Конечный результат таков:
После вставки URL, как показано ниже, нажмите кнопку DOWNLOAD. Подождите несколько секунд, и ваше видео будет загружено.
Заключение
Мы успешно разработали программу для загрузки видео с youtube с помощью python. Надеюсь, это было полезно. Спасибо за прочтение.