Найти тему
Журнал «Код»

Делаем свой загрузчик видео с Ютуба

Оглавление

Независимый и автономный

В интернете много сервисов по скачиванию видео с ютуба. Сегодня мы сделаем свой — простой, понятный и полностью настраиваемый. Для этого мы расчехлим Python — он хорошо справляется с подобными задачами. Если вы совсем новичок в Python — почитайте сначала нашу вводную статью:

Как установить Python на компьютер и начать на нём писать

Подключаем библиотеки

Для загрузки видео нам понадобится библиотека pytube — в ней уже есть всё, что нам нужно. Ещё мы будем использовать библиотеку tkinter для отрисовки интерфейса — мы уже работали с ней, когда писали свою игру на Python.

Для установки библиотек пишем в командной строке:

pip install tkinter
pip install pytube

-2

Теперь подключаем библиотеки в коде:

-3

Рисуем интерфейс

Задача интерфейса — сделать так, чтобы мы смогли вставить ссылку на видео и нажать кнопку «Скачать». Для этого мы нарисуем:

  • поле ввода адреса, откуда надо скачать видео;
  • кнопку «Скачать» рядом с полем;
  • кнопки очистки и выхода.

Это самый простой и минимальный интерфейс, но он уже позволит решить нашу задачу.

Разместим элементы на форме с помощью кода. Если вам непонятно, что тут происходит, посмотрите статью про программу для ведения бюджета — мы там разобрали, как работает графический интерфейс.

-4
-5

Настраиваем кнопки

Начнём с простых — очистки и выхода:

-6

Теперь сделаем самое главное — настроим всё так, чтобы скрипт скачивал видео с ютуба в наилучшем качестве, которое там доступно. Логика такая:

  1. Берём адрес и с его помощью подключаемся к ютубу.
  2. Выясняем, какое у видео максимальное разрешение.
  3. Скачиваем это видео и сообщаем об этом пользователю.
  4. Если не получилось скачать видео по ссылке или получить данные о его качестве — выводим сообщение об ошибке.

Как обычно, мы прокомментировали каждую строку, чтобы было проще разобраться в том, что происходит в коде:

-7

Что дальше

Можно развивать этот проект дальше и подтянуть его до уровня обычных облачных сервисов. Например, можно добавить такое:

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

Сделаем это в другой раз, а пока попробуйте сами добавить эти функции, используя библиотеку pytube.

Готовый код: https://v.thecode.media/wto9y