Traffic Cardinal Traffic Cardinal написал 03.02.2025

Создаем Telegram-бот для конвертации видео в GIF

Traffic Cardinal Traffic Cardinal написал 03.02.2025
6 мин
0
151
Содержание

Чем больше вес файла в Telegram — тем ниже шанс его просмотра, это особенно актуально, если речь о видосах. Пользователи попросту не привыкли что-то скачивать из мессенджера по полчаса, а потокового воспроизведения в Телеге нет (и вряд ли будет). Помочь с этим может бот для конвертации видео в GIF, процесс создания которого мы и рассмотрим в этой статье.

banner banner

Какие задачи выполняет бот для конвертации видео в GIF

Из названия материала очевидно, что бот превращает видеоролик в GIF-анимацию. Но зачем это нужно? А нужно это, например, для:

  • Повышения конверсии — если звук не важен, то незачем перегружать пост тяжеловесным видосом.

  • Упрощения жизни — GIF-анимации нужны не только в Telegram. Конечно, есть standalone-программы для конвертации. Но давайте будем честны: сегодня про их существование помнят лишь те, кто постоянно конвертирует одно в другое. И говоря постоянно, мы имеем в виду 99% рабочего времени. Даже дизайнеры и маркетологи все чаще ищут онлайн-сервисы. А уж арбитраны и подавно.

  • Упрощения жизни 2.0 — вы умеете снимать видосы? Скорее всего, да. А создавать анимации? Возможно. Но такое умеет далеко не каждый читатель. Так не проще ли создать анимацию из видоса?

  • Прочих танцев с бубном — в отличие от видео, GIF можно использовать для создания стикеров, интерактивных ответов в беседе и во множество других ситуаций. Тут все упирается лишь в фантазию.

А еще, как и любой другой «что-то делающий» бот, этот конвертер можно использовать для генерации трафика. Делать ставку только на это мы не советуем (во всяком случае, если у вас не сетка ботов) — это пыль, а не профит. Но вот если монетизировать «между делом» — почему бы и да? Просто добавьте к нему функционал попрошайки подписки и генерируйте немного трафа в пассивном режиме. А уж если у вас целая сетка ботов… Ну да ладно — вернемся к нашему конвертеру.

Принцип работы бота для конвертации видео в GIF

  1. Авторизация через bot_api в Telegram.
  2. Прослушивание обращений и отклик на событие «Новое сообщение».
  3. Если сообщение не содержит видеофайла — вывод приветственного сообщения с просьбой прислать видео для конвертации в GIF.
  4. Если новое сообщение содержит видеофайл, сохранение видоса на сервер.
  5. Конвертация видеоряда из полученного файла в GIF-анимацию посредством ffmpeg-инструментов.
  6. Отправка в ответном сообщении GIF-файла после завершения конвертации.
  7. Удаления исходного видео и GIF-файла с сервера после завершения отправки результата.

На самом деле алгоритм на порядок сложнее, но мы же создаем бот, а не разбираемся с архитектурой ffmpeg-библиотеки. Поэтому упростим самую сочную сложнятину до простого человеческого «конвертирует»
На самом деле алгоритм на порядок сложнее, но мы же создаем бот, а не разбираемся с архитектурой ffmpeg-библиотеки. Поэтому упростим самую сочную сложнятину до простого человеческого «конвертирует»

Пошаговая инструкция, как сделать бот для конвертации видео в GIF на Python

Как и в случае с развертыванием любого другого бота, сначала нужно подобрать сервер, где бот будет «жить». В нашем случае сервер должен подходить под использование Python — так как бот написан на Змее. В общем же случае сервер нужно подбирать под свой ЯП. Чтобы не арендовать железо вслепую, можете использовать собственный ПК и развернуть бот на нем. Для тестов — самое оно. А там со временем уже и понимание того, что именно вам нужно для ваших делишек, постепенно придет.

После создания сервера нужно его настроить. Если ваш сервак на Винде, как в гайде по ссылке выше, вводим в консоль:

winget install ffmpeg

Если же вы арендовали сервер и он на Linux (Ubuntu/Debian), то вводим либо:

sudo apt install ffmpeg

Либо для Linux (CentOS/Fedora):

sudo dnf install ffmpeg

Далее в любом из трех случаев вводим:

pip install python-telegram-bot moviepy

После завершения настройки делаем следующее:

  1. Находим в Телеге BotFather и следуем его инструкциям, чтоб получить токен для бота. Сам токен копируем куда-то.
  2. Открываем корень сервера, создаем текстовый файл, переносим в него следующий код:
    import os
    import imageio
    from telegram import Update
    from telegram.ext import Application, CommandHandler, MessageHandler, filters, CallbackContext
    def video_to_gif(video_path: str, gif_path: str):
    reader = imageio.get_reader(video_path)
    fps = reader.get_meta_data()['fps']
    writer = imageio.get_writer(gif_path, fps=fps)
    for frame in reader:
    writer.append_data(frame)
    writer.close()
    async def start(update: Update, context: CallbackContext) -> None:
    await update.message.reply_text('Привет! Отправь мне видео, и я конвертирую его в GIF.')
    async def handle_video(update: Update, context: CallbackContext) -> None:
    video_file = await update.message.video.get_file()
    video_path = "input_video.mp4"
    gif_path = "output.gif"
    await video_file.download_to_drive(video_path)
    video_to_gif(video_path, gif_path)
    await update.message.reply_document(document=open(gif_path, 'rb'))
    os.remove(video_path)
    os.remove(gif_path)
    def main() -> None:
    token = "
    ТОКЕН СЮДА"
    application = Application.builder().token(token).build()
    application.add_handler(CommandHandler("start", start))
    application.add_handler(MessageHandler(filters.VIDEO, handle_video))
    application.run_polling()
    if __name__ == '__main__':
    main()
  3. Вместо ТОКЕН СЮДА подставляем свой токен от бота.
  4. Сохраняем файл как bot.py
  5. Запускаем бот командой python bot.py

Проверяем работоспособность.

Демонстрация работы

GIF-файл получен. Пусть вас не пугает его «квадратность» — это просто формат отображения превью Телеги
GIF-файл получен. Пусть вас не пугает его «квадратность» — это просто формат отображения превью Телеги

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

Подводя итоги

Создать Telegram-бот для конвертации видео в GIF проще, чем кажется. Для чего именно его использовать — создания крео, облегчения контента постов или генерации подписок, оставляем на откуп вам. Подписывайтесь на наш Telegram и получайте исходный код ботов первыми!

Здравствуйте! У вас включен блокировщик рекламы, часть сайта не будет работать!