Москва+7 495 215-10-97
Выгрузка видео из YouTube при помощи Python

Выгрузка видео из YouTube при помощи Python

28.04.2023

7 мин

Святов Роман

Святов Роман

Руководитель группы аналитики в MediaNation с техническим образованием (МИСИС) и экспертизой в сквозной аналитике, ML и автоматизации процессов. Соразработчик StreamMyData, внедрял решения для ЛитРес, ПИК, Grand Hotel и других крупных клиентов.

Опыт работы:
4 года

Вступление

YouTube — видеохостинг, предоставляющий возможность пользователям хранить, создавать и просматривать видеоролики по различным тематикам. Иногда может появляться потребность в скачивании понравившегося ролика на свой компьютер, но, к сожалению, YouTube не предоставляет такого функционала напрямую. Существует множество веб-сайтов, способных скачать видео с YouTube — нужно просто указать ссылку на видеоролик. Но что, если нужно скачать 10, 50, 100 роликов за раз? Для реализации данной потребности может помочь библиотека на Python, позволяющая загружать видео с YouTube.

Для начала установим две библиотеки — yt_dlp и tqdm. Первая как раз нужна для скачивания видео с YouTube, а вторая поможет отслеживать процесс скачивания в виде индикатора прогресса.

Написание кода

Для написания кода воспользуемся облачной средой Google Colab. Перейдем к процессу скачивания видео из YouTube:

  1. Устанавливаем необходимые библиотеки:
!pip install tqdm
!pip install yt_dlp
  1. Импортируем необходимые библиотеки:
import yt_dlp
from tqdm.notebook import tqdm
import datetime
import os
  1. Подключаем Google Drive, в который будем сохранять скачанные видео:
from google.colab import drive
drive.mount('/content/drive/')
  1. Создаем TXT-файл, где каждая строчка — это ссылка на YouTube-видео. Добавляем файл в директорию Google Colab (файл необходимо назвать videos.txt):
Добавляем файл в директорию Google Colab
  1. Скачиваем видео с YouTube. Сохраняем их в папке в Google Drive:
# Считываем ссылки из файла и создаем список из них
with open('videos.txt', 'r+') as f:
   links = f.readlines()
# Создаем папку для видео в корневой директории Google Drive
current_time = datetime.datetime.now().strftime('%Y_%m_%d_%H_%M_%S')
youtube_videos_folder_path = f'/content/drive/MyDrive/youtube_videos_{'{current_time}'}'
os.mkdir(youtube_videos_folder_path)
# Конфигурационные параметры
ydl_opts = {
   'format': 'mp4',
   'outtmpl': f'{'{youtube_videos_folder_path}'}/%(title)s.%(ext)s'
}
# Пробегаемся по списку из ссылок на видео и скачиваем их в Google Drive в созданную ранее папку
for url in tqdm(links):
   with yt_dlp.YoutubeDL(ydl_opts) as ydl:
     ydl.download()

Скорость скачивания видео зависит от вашего интернет-соединения. В переменной ydl_opts можно указывать дополнительные параметры по необходимости.

После запуска скрипта в Google Drive появится папка с названием youtube_videos_{текущая дата и время}. Если понадобится скачать другие видео, просто меняем ссылки в файле videos.txt и заново выполняем п. 5.

папка с названием youtube_videos_текущая дата и время

Полный код доступен по ссылке.

Вывод

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

Узнавайте первыми
о полезных материалах и новостях

Другие материалы