You are currently viewing Библиотека Pytube | Python для загрузки видео с YouTube

Библиотека Pytube | Python для загрузки видео с YouTube

YouTube — очень популярный сайт для обмена видео. Загрузка видео с YouTube-это тяжелая работа. Загрузите загрузчик и получите видео с его помощью или перейдите на любой другой веб-сайт, который извлекает видео и сохраняет его на вашем компьютере. Используя Python, эта задача очень проста. Несколько строк кода позволят загрузить видео с YouTube для вас. Для этого существует библиотека python с именем «pytube». pytube — это легкая, свободная от зависимостей библиотека Python, которая используется для загрузки видео из Интернета.
pytube — это не родная библиотека. Вам необходимо установить его перед использованием. Установка проста, когда у вас есть pip. В терминале или командной строке введите следующую команду для установки pytube.

pip install pytube

Если у вас нет pip, установите его как внешнюю библиотеку.

Загрузка одного видео

Библиотека pytube упрощает загрузку видео. Создайте объект модуля YouTube, передав ссылку в качестве параметра. Затем получите соответствующее расширение и разрешение видео. Вы можете задать имя файла для вашего удобства, в другом случае оригинальное имя будет сохранено. После этого загрузите файл, используя функцию загрузки, которая имеет один параметр, который является местоположением, в которое нужно загрузить файл.

# importing the module
from pytube import YouTube

# where to save
SAVE_PATH = "E:/" #to_do

# link of the video to be downloaded
link="https://www.youtube.com/watch?v=xWOoBJUqlbI"

try:
	# object creation using YouTube
	# which was imported in the beginning
	yt = YouTube(link)
except:
	print("Connection Error") #to handle exception

# filters out all the files with "mp4" extension
mp4files = yt.filter('mp4')

#to set the name of the file
yt.set_filename('GeeksforGeeks Video')

# get the video with the extension and
# resolution passed in the get() function
d_video = yt.get(mp4files[-1].extension,mp4files[-1].resolution)
try:
	# downloading the video
	d_video.download(SAVE_PATH)
except:
	print("Some Error!")
print('Task Completed!')

Загрузка файла занимает некоторое время, так как из Интернета загружается очень большой объем данных. В зависимости от скорости соединения, время, необходимое для выполнения программы, варьируется. В случае, если вы хотите загрузить нужное количество файлов, перейдите к следующему делу.

Загрузка нескольких видео

Основная задача загрузки нескольких видео такая же, как и при загрузке одного видео. Мы можем использовать цикл for для загрузки видео.

from pytube import YouTube

#where to save
SAVE_PATH = "E:/" #to_do

#link of the video to be downloaded
link=["https://www.youtube.com/watch?v=xWOoBJUqlbI",
	"https://www.youtube.com/watch?v=xWOoBJUqlbI"
	]

for i in link:
	try:
		
		# object creation using YouTube
		# which was imported in the beginning
		yt = YouTube(i)
	except:
		
		#to handle exception
		print("Connection Error")
	
	#filters out all the files with "mp4" extension
	mp4files = yt.filter('mp4')

	# get the video with the extension and
	# resolution passed in the get() function
	d_video = yt.get(mp4files[-1].extension,mp4files[-1].resolution)
	try:
		# downloading the video
		d_video.download(SAVE_PATH)
	except:
		print("Some Error!")
print('Task Completed!')

В этом случае мы использовали цикл for для загрузки нескольких файлов, как показано на рисунке. Можно использовать обработку файлов для сохранения всех ссылок в файле, который необходимо загрузить.

Загрузка нескольких видео с помощью обработки файлов

Используя обработку файлов, мы можем открыть файл, в котором есть группа ссылок. Здесь выполняется переход по каждой ссылке текстового файла и применение самой простой программы загрузки видео. Здесь у нас есть текстовый файл с именем “links_file.txt” в котором есть все ссылки, которые необходимо загрузить.

from pytube import YouTube

# where to save
SAVE_PATH = "E:/" #to_do

# link of the video to be downloaded
# opening the file
link=open('links_file.txt','r')

for i in link:
	try:
		
		# object creation using YouTube
		# which was imported in the beginning
		yt = YouTube(i)
	except:
		
		#to handle exception
		print("Connection Error")
	
	#filters out all the files with "mp4" extension
	mp4files = yt.filter('mp4')
	
	# get the video with the extension and
	# resolution passed in the get() function
	d_video = yt.get(mp4files[-1].extension,mp4files[-1].resolution)
	try:
		
		# downloading the video
		d_video.download(SAVE_PATH)
	except:
		print("Some Error!")
print('Task Completed!')

Важные моменты: 

  1. Убедитесь, что вы подключены к Интернету, чтобы загрузить видео. В противном случае это вызовет ошибку.
  2. Не используйте функцию set_filename() ни в одном цикле. В этом случае будет загружено только одно видео.
  3. Вы можете каждый раз изменять имена, используя другой массив имен.
  4. Прерывание соединения между ними также приведет к ошибке, и в этом случае видео не будет загружено.