Telegram-бот для скачивания контента из социальных сетей с AI-функциями
Telegram-бот для скачивания видео, фото и каруселей из Instagram, YouTube, TikTok, Twitter/X и VK. Включает AI-функции: перевод, рерайт текста и OCR с изображений.
- Bot: @UspSocDownloader_bot
- Server: VPS 31.44.7.144
- Status: Production
| Платформа | Видео | Фото | Карусели | Reels/Shorts | Multi-Video |
|---|---|---|---|---|---|
| Yes | Yes | Yes | Yes | - | |
| YouTube | Yes | - | - | Yes (Shorts) | - |
| TikTok | Yes | - | - | - | - |
| Twitter/X | Yes | Yes | Yes | - | Yes |
| VK | Yes | - | - | Yes (Clips) | - |
- Скачивание видео (до 1080p)
- Скачивание фото (оригинальное качество)
- Поддержка каруселей/альбомов (до 10 медиа)
- Twitter/X multi-video твиты (несколько видео в одном посте)
- YouTube: выбор качества + скачивание только аудио (MP3)
- Извлечение текста поста
- Информация об авторе (username, ссылка)
- Метаданные (лайки, комментарии, просмотры)
| Функция | Описание | Модель |
|---|---|---|
| Перевод | Автоматический перевод на русский | gpt-4o-mini |
| Рерайт | 3 стиля: экспертный, юмористический, дружелюбный | gpt-4o-mini |
| OCR | Извлечение текста с изображений | gpt-4o (vision) |
- 📂 История загрузок - Сохранение всех загрузок с возможностью повторного скачивания
- ⭐ Избранное - Отметка любимых загрузок для быстрого доступа
- 📁 Коллекции - Организация загрузок по тематическим коллекциям
- ⚙️ Настройки - Персональные настройки качества, формата, авто-удаления
- 📊 Статистика - Детальная статистика использования бота
- 🗑️ Авто-очистка - Автоматическое удаление старых файлов по расписанию
- Интерактивное меню с кнопками быстрого доступа
- Просмотр статистики бота (пользователи, запросы, успешность)
- Список топ-20 активных пользователей
- Управление Instagram cookies
- Проверка состояния Instagram
- Рассылка сообщений всем пользователям
UspSocDownloader/
├── src/
│ ├── main.py # Entry point
│ ├── bot.py # Bot initialization
│ ├── config.py # Configuration
│ │
│ ├── handlers/
│ │ ├── start.py # /start command
│ │ ├── help.py # /help command
│ │ ├── commands.py # User & admin commands
│ │ └── url_handler.py # URL processing + callbacks
│ │
│ ├── downloaders/
│ │ └── media_downloader.py # yt-dlp + gallery-dl downloader
│ │
│ ├── processors/
│ │ └── url_processor.py # URL parsing & validation
│ │
│ ├── utils/
│ │ ├── logger.py # Logging
│ │ ├── validators.py # Input validation
│ │ ├── translator.py # OpenAI: translate, rewrite, OCR
│ │ ├── text_helpers.py # Safe text formatting
│ │ ├── sheets.py # Google Sheets integration
│ │ ├── notifications.py # Telegram notifications
│ │ ├── rate_limiter.py # Rate limiting for platforms
│ │ ├── error_messages.py # User-friendly error messages
│ │ └── file_cleaner.py # Automatic file cleanup service
│ │
│ ├── database/
│ │ └── db_manager.py # SQLite database manager
│ │
│ └── localization/
│ └── messages.py # UI messages (Russian)
│
├── data/
│ ├── downloads/ # Temporary downloads
│ │ ├── video/
│ │ ├── photo/
│ │ └── audio/
│ └── cookies/ # Platform cookies
│ └── instagram_cookies.txt
│
├── logs/ # Application logs
├── tests/ # Unit & integration tests
└── run_bot.py # Production entry point
| Компонент | Технология | Версия |
|---|---|---|
| Framework | aiogram | 3.15 |
| Downloader | yt-dlp | latest |
| Instagram photos | gallery-dl | latest |
| AI | OpenAI API | GPT-4o |
| HTTP | aiohttp | 3.x |
| Runtime | Python | 3.11+ |
- Python 3.11+
- yt-dlp
- gallery-dl
- FFmpeg (для видео)
# Клонировать репозиторий
git clone https://github.com/yourusername/UspSocDownloader.git
cd UspSocDownloader
# Создать virtual environment
python -m venv .venv
source .venv/bin/activate # Linux/Mac
.\.venv\Scripts\activate # Windows
# Установить зависимости
pip install -r requirements.txt
# Создать .env файл
cp .env.example .env
# Отредактировать .env с вашими токенамиBOT_TOKEN=your_telegram_bot_token
OPENAI_API_KEY=your_openai_api_key
LOG_LEVEL=INFO# Локально
python run_bot.py
# Или через systemd (production)
systemctl start uspsocdowloader# /etc/systemd/system/uspsocdowloader.service
[Unit]
Description=UspSocDownloader Telegram Bot
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/uspsocdowloader
ExecStart=/opt/uspsocdowloader/.venv/bin/python run_bot.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target# Запуск
systemctl start uspsocdowloader
# Остановка
systemctl stop uspsocdowloader
# Перезапуск
systemctl restart uspsocdowloader
# Логи
journalctl -u uspsocdowloader -fПросто отправьте ссылку боту:
https://www.instagram.com/p/ABC123/
https://www.youtube.com/watch?v=dQw4w9WgXcQ
https://www.tiktok.com/@user/video/123456
https://twitter.com/user/status/123456
https://vk.com/video-123_456
После скачивания появляются интерактивные кнопки:
- Перевести на русский - для иностранного текста
- Сделать рерайт - выбор из 3 стилей
- Получить текст с картинок - OCR для каруселей с текстом
Подробное руководство пользователя с примерами и FAQ: USER_GUIDE.md
- USER_GUIDE.md - Полное руководство пользователя с примерами и FAQ
- API_DOCUMENTATION.md - Техническая документация для разработчиков
- CLAUDE.md - Инструкции для Claude Code при работе с проектом
| Callback | Описание |
|---|---|
translate |
Перевод текста на русский |
rewrite_menu |
Меню выбора стиля рерайта |
rewrite_expert |
Рерайт в экспертном стиле |
rewrite_humor |
Рерайт в юмористическом стиле |
rewrite_friendly |
Рерайт в дружелюбном стиле |
ocr_extract |
Извлечение текста с изображений |
admin_panel |
Админ-панель (только для администратора) |
admin_stats |
Просмотр статистики |
admin_users |
Список пользователей |
| Команда | Описание |
|---|---|
/admin |
Открыть админ-панель |
/allstats |
Общая статистика бота |
/users |
Список всех пользователей |
/broadcast |
Рассылка сообщений |
/checkinstagram |
Проверить состояние Instagram |
/setcookies |
Обновить Instagram cookies |
# Перевод
await translate_to_russian(text: str) -> str
# Рерайт
await rewrite_text(text: str, style: str) -> str
# style: "expert" | "humor" | "friendly"
# OCR
await extract_text_from_images(image_paths: List[str]) -> str
# Проверка текста на изображениях
await check_images_have_text(image_paths: List[str]) -> bool# Запустить все тесты
python tests/test_all.py
# Тесты доступны:
# - test_database(): Database operations (13 tests)
# - test_export(): CSV/JSON export (10 tests)
# - test_search(): History search (8 tests)
# - test_cleanup_service(): File cleanup (6 tests)
# Отдельные тестовые модули:
python test_collection_edit.py
python test_search.py
python test_export.py
python test_cleanup.pyРезультаты тестирования:
✅ Database Tests: 13/13 passed (100%)
✅ Export Tests: 10/10 passed (100%)
✅ Search Tests: 8/8 passed (100%)
✅ Cleanup Tests: 6/6 passed (100%)
Total: 37/37 tests passed
# Format
black src tests
# Lint
flake8 src tests
# Type check
mypy src- Админ-панель: интерактивное меню с кнопками для администратора
- Безопасность: экранирование HTML в сообщениях об ошибках (исправлена ошибка парсинга entities)
- VK: поддержка vk.ru домена для видео и stories
- Лимиты: увеличен лимит видео до 300 MB для Premium
- UX: админ видит кнопку "Админ-панель" в стартовом меню
- Twitter/X: поддержка multi-video твитов (несколько видео в одном посте)
- Twitter/X: полный текст твита без обрезания
- VK: улучшенная обработка ошибок для постов без видео
- YouTube: выбор качества видео (360p-1080p)
- YouTube: скачивание только аудио (MP3)
- Уведомления в супергруппу с топиками для каждого пользователя
- Google Sheets интеграция для статистики
- Уведомления администраторам
- Улучшенная обработка Instagram каруселей
- Реферальная система
- Instagram: видео, фото, карусели, reels
- YouTube: видео, shorts
- TikTok: видео без водяного знака
- Twitter/X: видео, фото
- VK: видео, клипы
- AI: перевод на русский (GPT-4o-mini)
- AI: рерайт в 3 стилях (GPT-4o-mini)
- AI: OCR с изображений (GPT-4o vision)
- Интерактивные inline-кнопки
MIT License - see LICENSE for details.
Этот бот предназначен только для личного использования. Уважайте авторские права и условия использования платформ социальных сетей.
Powered by Claude Code