Найти в Дзене
AppsForMobile

Делаем бота для скачивания видео из YouTube на Python #1

Оглавление

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

Что будем использовать:

  • Python. Простой и ёмкий язык.
  • Pyrogram. Библиотека для Client API. Она мне очень сильно нравится, так как имеет много крутых фишек.
  • youtube_dl. Самая простая и популярная библиотека для скачивания видео.
  • Сервер. На первое время подойдёт и компьютер. Но если нужно будет захостить или использовать регулярно, лучше конечно купить VDS.

Подготовка

Подготовим все библиотеки. Python с pip уже должны быть установлены.

Вот и всё :) Больше нам пока что ничего не понадобится. Позже можем наращивать функции — очереди сообщений, кэш, ведение статистики, выбор формата, качества и т.д. Но пока что нам это не надо. Может быть покажу это в следующих статьях.

Ниже вы увидите подробное описание программы, но если вы хотите перейти к исходному коду, листайте вниз, там будет ссылка на скачивание

Кодим. Оболочка бота

Так как мы профессиональные программисты, сделаем разбивку на файлы. Это избавит нас от зависимостей, а также упростит создание бота.

Сперва создадим youtube.py. Это будет наш ключевой файл, в котором будет содержаться "оболочка" бота. То есть это обработка внешних команд от пользователей. В самом начале импортируем все файлы, а после инициируем создание бота. Вы должны вставить свой токен, который вы получите от @BotFather.

Отлично! Теперь создаём команду, чтобы бот отвечал. Бот предложит скачать видео (а в будущем, занесёт в базу данных)

Этот странный восклицательный знак и слэш — то, с чего может начинаться команда.

Теперь бот научился здороваться. Можно научить и видео обрабатывать :)

Проверка ссылки

Пока что мы хотим скачивать видео только из YouTube. Именно поэтому стоит добавить проверку. Она будет валидировать видео, то есть проверять, какая это ссылка и ссылка ли вообще. Зачем? Будем ловить меньше ошибок и будем отсеивать неправильные видео на этапе получения.

Как я уже сказал, будем стараться на каждый логический этап создавать новый файл. Поэтому создадим validation.py

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

Скачивание

Финальный этап. Здесь нам нужно просто скачать видео. Создадим download.py и вставим:

На этом всё! Можно идти проверять бота :)

Исходный код (версия в статье)

Исходный код (самая новая версия)

Наука
7 млн интересуются