Как скачать видео с YouTube на Python

Как скачать видео с YouTube на Python

15.02.2023
540
Пример реализации скачивания видео с YouTube на языке Python, используя библиотеку Pytube, а также как конвертировать и обрабатывать видео с помощью библиотеки MoviePy

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

Установка необходимых библиотек

Перед тем, как начать работу, необходимо установить несколько библиотек, которые помогут нам в скачивании видео с YouTube. Для этого можно использовать менеджер пакетов pip, введя следующую команду в терминале:

pip install pytube
pip install moviepy

Установка библиотек осуществляется с помощью командной строки, которую можно открыть на вашем компьютере. Для этого найдите в меню "Пуск" или в панели задач иконку "Командная строка" и нажмите на нее правой кнопкой мыши. Выберите пункт "Запустить от имени администратора". В открывшемся окне введите команды, указанные выше, и нажмите "Enter". Библиотеки будут скачаны и установлены на ваш компьютер.

Скачивание видео

Для того, чтобы скачать видео, необходимо создать объект класса YouTube из библиотеки pytube и вызвать метод streams:

from pytube import YouTube

yt = YouTube('https://www.youtube.com/watch?v=dQw4w9WgXcQ')
stream = yt.streams.first()

В приведенном выше примере мы создаем объект yt с помощью ссылки на видео-ролик на YouTube и выбираем первый доступный поток с помощью метода first(). Далее мы можем начать загрузку видео:

stream.download()

По умолчанию, видео будет сохранено в ту же директорию, где находится скрипт.

Но что, если вы хотите указать другую директорию для сохранения видео? Для этого можно использовать следующий код:

from pytube import YouTube

yt = YouTube('https://www.youtube.com/watch?v=dQw4w9WgXcQ')
stream = yt.streams.first()
stream.download(output_path='/path/to/directory')

В данном примере мы указываем путь до директории, где необходимо сохранить видео.

Также вы можете выбрать определенный формат видео, который вы хотите скачать. Для этого нужно использовать метод filter, например:

from pytube import YouTube

yt = YouTube('https://www.youtube.com/watch?v=dQw4w9WgXcQ')
stream = yt.streams.filter(file_extension='mp4', res='720p').first()
stream.download()

В данном примере мы выбираем видео с разрешением 720p и форматом mp4.

Конвертирование видео

Часто возникает необходимость конвертировать видео в другой формат или обрезать его. Для этих целей можно использовать библиотеку moviepy. Например, чтобы обрезать видео, необходимо создать объект класса VideoFileClip и вызвать метод subclip:

from moviepy.video.io.VideoFileClip import VideoFileClip

clip = VideoFileClip('video.mp4').subclip(0, 10) # обрезаем первые 10 секунд видео
clip.write_videofile('new_video.mp4')

В данном примере мы открываем видео файл video.mp4, обрезаем первые 10 секунд с помощью метода subclip и сохраняем результат в новый файл new_video.mp4.

Также можно конвертировать видео в другой формат, например, в avi:

from moviepy.editor import *

clip = VideoFileClip('video.mp4')
clip.write_videofile('new_video.avi', codec='png')

В данном примере мы конвертируем видео из формата mp4 в avi с помощью кодека png.

Заключение

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

Однако, стоит помнить об авторских правах на видео и не использовать их без разрешения владельца. Также не забывайте, что некоторые видео могут быть защищены авторскими правами и не могут быть загружены или использованы без специального разрешения.

Кроме того, не забывайте обновлять библиотеки, чтобы избежать возможных ошибок и проблем при работе с ними.

Использование Python для скачивания и обработки видео может быть очень полезным в различных сферах, таких как научные исследования, создание видеоконтента, анализ рынка и многих других.