1
0
Fork 0
mirror of https://github.com/EDeev/circlechek.git synced 2026-10-07 20:49:51 +03:00
Telegram-бот: квадратное видео → кружочек и кружочек → видео с размытым или градиентным фоном в углах. aiogram 3, MoviePy, Pillow https://t.me/circlechek_bot
Find a file
Egor Deev e74873588a Исправлены ошибки обработки кружочков
- папка обработки была одна на чат: после первой же ошибки она оставалась, и все следующие
  кружочки в этом чате падали на os.mkdir — теперь своя временная папка на каждую обработку
  и уборка в любом случае;
- кнопки фона знают свой кружочек: если прислать несколько подряд, обработается нужный;
  повторное нажатие отвечает подсказкой вместо ошибки;
- покадровая обработка шла прямо в обработчике и блокировала бота для всех — вынесена в
  отдельный поток;
- кружочек без звука падал на .audio.write_audiofile;
- градиент по тёмным и светлым кадрам «переворачивался» (−10 в uint8 = 246): значения
  ограничены 0…255; средний цвет кадра считается NumPy, а не циклом по пикселям;
- декоратор bug_report вызывал sys.exit() внутри обработчика — убран, ошибки логируются,
  пользователь получает сообщение;
- видео, которое не удалось превратить в кружок, больше не остаётся на диске;
- токен — из переменной BOT_TOKEN; ссылка «АВТОР» вела на чужой теперь профиль IGlek —
  заменена на EDeev;
- requirements.txt: moviepy>=1.0.3 не подходил к коду под moviepy 2 — версии закреплены
  по работающему окружению.
2026-10-05 19:16:13 +00:00
code Исправлены ошибки обработки кружочков 2026-10-05 19:16:13 +00:00
data v. 1.0 2025-06-30 23:59:17 +03:00
.gitattributes Переводы строк приведены к LF 2026-10-05 19:11:25 +00:00
README.md README.md 2025-07-01 00:08:40 +03:00
requirements.txt Исправлены ошибки обработки кружочков 2026-10-05 19:16:13 +00:00

🎥 Circlechek

Telegram-бот для преобразования квадратных видео в кружочки и обработки видеосообщений с настраиваемыми фонами.

📋 Описание

Circlechek — это простой и функциональный Telegram-бот, предназначенный для работы с видеоконтентом. Бот предоставляет две основные возможности:

  1. Преобразование видео в кружочки — превращает квадратные видео (до 1 минуты) в формат видеосообщений Telegram
  2. Обработка кружочков — конвертирует видеосообщения в обычные видео с настраиваемым фоном по краям

✨ Функциональность

🔄 Видео → Кружочек

  • Принимает квадратные видеофайлы длительностью до 60 секунд
  • Автоматически преобразует их в формат кружочков Telegram
  • Сохраняет качество и плавность воспроизведения

🎨 Кружочек → Видео

  • Обрабатывает видеосообщения с добавлением фона по краям
  • Градиентный фон — создает плавный цветовой переход на основе доминирующих цветов кадра
  • Размытый фон — использует размытую версию центральной части видео
  • Сохраняет исходное аудио и синхронизацию

🛠 Технологический стек

  • Python 3.x — основной язык разработки
  • aiogram — асинхронная библиотека для работы с Telegram Bot API
  • PIL (Pillow) — обработка изображений и создание эффектов
  • MoviePy — работа с видеофайлами, извлечение кадров и аудио
  • NumPy — математические операции с массивами для обработки изображений

🚀 Установка и запуск

Требования

  • Python 3.8+
  • Токен Telegram-бота от @BotFather

Установка зависимостей

pip install -r requirements.txt

Настройка

  1. Получите токен бота в @BotFather
  2. Отредактируйте файл code/config.py:
botToken = "ВАШ_ТОКЕН_БОТА"

Запуск

cd code
python bot.py

📁 Структура проекта

circlechek/
├── code/
│   ├── bot.py          # Основной файл запуска бота
│   ├── handlers.py     # Обработчики команд и сообщений
│   ├── scripts.py      # Классы для работы с видео и изображениями
│   ├── config.py       # Конфигурация бота
│   └── init.py         # Инициализация бота и утилиты
├── data/
│   ├── circles/        # Временные файлы кружочков
│   ├── video_notes/    # Временные видеосообщения
│   └── videos/         # Обработанные видео
└── README.md

🎯 Использование

  1. Начало работы: Отправьте /start боту
  2. Создание кружочка: Отправьте квадратное видео (до 1 минуты)
  3. Обработка кружочка:
    • Отправьте видеосообщение боту
    • Выберите тип фона: "Градиент" или "Блюр"
    • Получите обработанное видео

⚠️ Важные особенности

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

📄 Лицензия

Проект распространяется под лицензией MIT.

👨‍💻 Автор

Деев Егор Викторович - Backend Developer


⭐ Если проект оказался полезным, поставьте звездочку на GitHub!

Создано с ❤️ от вашего дорогого - deev.space ©