Telegram-бот для удаления метаданных из видео без перекодирования
MetaCleaner — это Telegram-бот, который удаляет метаданные (GPS, дату съемки, название устройства и т.д.) из видеофайлов без перекодирования. Быстро, безопасно, приватно.
- ✅ Очистка метаданных — удаление всех тегов из видео
- 🎵 Извлечение аудио — конвертация видео в MP3
- 🖼️ Скриншоты — создание превью из видео
- 📥 Скачивание с YouTube — с автоматической очисткой метаданных
- 🌐 Mini App — веб-интерфейс для скачивания с любых платформ
- 📊 Админ-панель — управление пользователями, задачами, рассылками
- YouTube, Instagram, TikTok, Facebook, Twitter, Vimeo, Dailymotion
- Форматы: MP4, MKV, MOV, AVI, WebM, M4V, FLV, TS, WMV, 3GP
- Ubuntu 22.04/24.04 (или Docker)
- Python 3.11
- Redis
- PostgreSQL (опционально, по умолчанию SQLite)
- FFmpeg
# 1. Клонировать репозиторий
git clone https://github.com/your-repo/metacleaner_bot.git
cd metacleaner_bot
# 2. Запустить автоматическую установку
sudo bash deploy/setup.sh
# 3. Настроить .env
cp .env.example .env
nano .env # Установить BOT_TOKEN и ADMIN_SECRET_KEY
# 4. Инициализировать БД
source .venv/bin/activate
python -m alembic upgrade head
python scripts/seed_settings.py
python scripts/create_admin.py
# 5. Установить systemd сервисы
sudo bash deploy/install_systemd.sh
# 6. Запустить
sudo systemctl start metacleaner-{bot,worker,beat,admin}Готово! Бот работает, админ-панель доступна на http://your-server:8000/admin
- DEPLOY.md — подробная инструкция по развертыванию
- SECURITY_FIXES_APPLIED.md — исправления безопасности
- DISASTER_RECOVERY.md — план восстановления после сбоев
- PRODUCTION_READY_100.md — отчет о готовности к production
metacleaner_bot/
├── bot/ # Telegram бот (aiogram)
├── admin/ # Веб-панель администратора (FastAPI)
├── workers/ # Celery воркеры для обработки
├── webapp/ # Mini App для скачивания
├── core/ # Общая логика и модели
├── scripts/ # Утилиты (backup, health check)
└── tests/ # Тесты (pytest)
- Bot: aiogram 3.7
- API: FastAPI + Uvicorn
- Queue: Celery + Redis
- Database: SQLAlchemy (SQLite/PostgreSQL)
- Processing: FFmpeg, yt-dlp
- Monitoring: Sentry, Prometheus
Проект прошел полный аудит безопасности и получил оценку 10/10:
- ✅ Защита от SSRF атак
- ✅ Защита от SQL Injection
- ✅ CSRF защита
- ✅ XSS защита
- ✅ Race conditions устранены
- ✅ Resource limits настроены
- ✅ Автоматический backup каждые 6 часов
- ✅ Мониторинг и алерты
Подробнее: SECURITY_FIXES_APPLIED.md
# Проверка всех компонентов
python scripts/health_check.py
# Вывод:
# ✓ Database OK Connected
# ✓ Redis OK Connected
# ✓ Celery OK 2 workers active
# ✓ Disk Space OK 45.2% free (120.5 GB)
# ✓ Temp Files OK 234.5 MB# Systemd
journalctl -u metacleaner-bot -f
# Docker
docker-compose logs -f bot- Prometheus:
http://your-server:9090 - Admin Panel:
http://your-server:8000/admin - Sentry: Настраивается через
SENTRY_DSNв.env
# 1. Установить зависимости
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
# 2. Настроить .env
cp .env.example .env
# 3. Запустить БД и Redis
docker-compose up -d postgres redis
# 4. Инициализировать БД
python -m alembic upgrade head
python scripts/seed_settings.py
python scripts/create_admin.py
# 5. Запустить компоненты (3 терминала)
python -m bot.main # Бот
celery -A workers.celery_app worker -l INFO --pool=solo # Воркер
python -m admin # Админка# Запустить все тесты
pytest tests/ -v
# С покрытием
pytest tests/ --cov=. --cov-report=html
# Только security тесты
pytest tests/test_security_fixes.py -vbot/— Telegram бот, роутеры, middlewareadmin/— FastAPI приложение, шаблоныworkers/— Celery задачи (обработка, скачивание, рассылки)core/— Модели, сервисы, конфигурацияwebapp/— Mini App (HTML + API)scripts/— Утилиты (backup, health check, создание админа)tests/— Pytest тесты
- Размер файла: 500 MB (настраивается)
- Задач в день на пользователя: 10 (настраивается)
- Одновременных задач: 2 (настраивается)
- Время хранения temp файлов: 30 минут
Все лимиты настраиваются через админ-панель или .env:
MAX_FILE_SIZE_MB=500
MAX_DAILY_JOBS_PER_USER=10
MAX_CONCURRENT_JOBS=2
CLEANUP_TTL_MINUTES=30- Issues: GitHub Issues
- Документация: См. файлы
*.mdв корне проекта
- Python 3.13 не поддерживается (используйте 3.11)
- YouTube с VPS может требовать cookies (см. DEPLOY.md)
- bcrypt 4.1+ несовместим с passlib (используется 4.0.1)
MIT License. См. LICENSE для деталей.
- aiogram — Telegram Bot framework
- FastAPI — Web framework
- Celery — Distributed task queue
- FFmpeg — Video processing
- yt-dlp — Video downloader
Версия: 1.0.0
Статус: ✅ Production Ready
Последнее обновление: 2026-04-18