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!')
Важные моменты:
- Убедитесь, что вы подключены к Интернету, чтобы загрузить видео. В противном случае это вызовет ошибку.
- Не используйте функцию set_filename() ни в одном цикле. В этом случае будет загружено только одно видео.
- Вы можете каждый раз изменять имена, используя другой массив имен.
- Прерывание соединения между ними также приведет к ошибке, и в этом случае видео не будет загружено.