Найти в Дзене
Записки сисадмина

Python. Telegram bot. Загружаем видео на сервер.

В продолжение к предыдущим постам, мне как-то прилетела быстрая задача на очень простенького бота, который должен загружать и сохранять видео, которые ему пришлют. Углубляться в ТЗ мы не будем, все довольно просто, поэтому сразу начнем. Поскольку наш бот будет максимально простым, не будем изобретать велосипед. Поэтому выдаем пользователю один и тот же ответ на обе команды. Не хочу городить большую логику в архитектуре папок, так как файлов будет не очень много. В то же время, было бы удобно искать файлы по дате. Было принято решение называть папки датой в американском формате "год-месяц-день". from datetime import datetime
import os Если вы снимаете видео с android устройства сразу в окне чата telegram, вы не получаете расширения файла в сообщении, только имя. Путем опытных испытаний было установлено, что видео приходят без расширения, но в формате .mp4

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

Углубляться в ТЗ мы не будем, все довольно просто, поэтому сразу начнем.

  • Создадим в каталоге с ботом папку videos, в которой будут храниться наши файлы.
  • Как обычно, инициализируем бота и создаем обработчик сразу на две команды: /start и /help.
-2

Поскольку наш бот будет максимально простым, не будем изобретать велосипед. Поэтому выдаем пользователю один и тот же ответ на обе команды.

  • Продумаем структуру наших файлов:

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

Было принято решение называть папки датой в американском формате "год-месяц-день".

  • Для этого нам понадобятся библиотеки datetime и os.

from datetime import datetime
import os

  • Создаем обработчик сообщений, который будет реагировать только на видео (content_types=video).
-3
  • Полученное в сообщении имя видео будет лежать в поле "message.video.file_name". Также мы будем автоматически создавать папку с текущей датой, если ее еще нет.
-4
  • А теперь самое важное, что и побудило меня создать этот пост.

Если вы снимаете видео с android устройства сразу в окне чата telegram, вы не получаете расширения файла в сообщении, только имя.

Путем опытных испытаний было установлено, что видео приходят без расширения, но в формате .mp4

-5
  • Добавляем уведомление пользователей о начале и конце скачивания и запускаем в работу:
-6

Весь код из статьи выложил здесь