Skip to content

About

Telegram Bot for downloading media from social networks (Instagram, YouTube, TikTok, VK, X)

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

50 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UspSocDownloader

Telegram-бот для скачивания контента из социальных сетей с AI-функциями

Python aiogram OpenAI License

Telegram-бот для скачивания видео, фото и каруселей из Instagram, YouTube, TikTok, Twitter/X и VK. Включает AI-функции: перевод, рерайт текста и OCR с изображений.


Telegram Bot


Возможности

Поддерживаемые платформы

Платформа Видео Фото Карусели Reels/Shorts Multi-Video
Instagram 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, ссылка)
  • Метаданные (лайки, комментарии, просмотры)

AI-функции (OpenAI GPT-4)

Функция Описание Модель
Перевод Автоматический перевод на русский 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 с вашими токенами

Конфигурация (.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

Деплой на VPS

Systemd service

# /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

AI-функции

После скачивания появляются интерактивные кнопки:

  1. Перевести на русский - для иностранного текста
  2. Сделать рерайт - выбор из 3 стилей
  3. Получить текст с картинок - OCR для каруселей с текстом

📚 Полное руководство

Подробное руководство пользователя с примерами и FAQ: USER_GUIDE.md


Документация

  • USER_GUIDE.md - Полное руководство пользователя с примерами и FAQ
  • API_DOCUMENTATION.md - Техническая документация для разработчиков
  • CLAUDE.md - Инструкции для Claude Code при работе с проектом

API Reference

URL Handler Callbacks

Callback Описание
translate Перевод текста на русский
rewrite_menu Меню выбора стиля рерайта
rewrite_expert Рерайт в экспертном стиле
rewrite_humor Рерайт в юмористическом стиле
rewrite_friendly Рерайт в дружелюбном стиле
ocr_extract Извлечение текста с изображений
admin_panel Админ-панель (только для администратора)
admin_stats Просмотр статистики
admin_users Список пользователей

Admin Commands

Команда Описание
/admin Открыть админ-панель
/allstats Общая статистика бота
/users Список всех пользователей
/broadcast Рассылка сообщений
/checkinstagram Проверить состояние Instagram
/setcookies Обновить Instagram cookies

Translator Functions

# Перевод
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

Changelog

v1.3.0 (2025-02-22)

  • Админ-панель: интерактивное меню с кнопками для администратора
  • Безопасность: экранирование HTML в сообщениях об ошибках (исправлена ошибка парсинга entities)
  • VK: поддержка vk.ru домена для видео и stories
  • Лимиты: увеличен лимит видео до 300 MB для Premium
  • UX: админ видит кнопку "Админ-панель" в стартовом меню

v1.2.0 (2025-12-07)

  • Twitter/X: поддержка multi-video твитов (несколько видео в одном посте)
  • Twitter/X: полный текст твита без обрезания
  • VK: улучшенная обработка ошибок для постов без видео
  • YouTube: выбор качества видео (360p-1080p)
  • YouTube: скачивание только аудио (MP3)
  • Уведомления в супергруппу с топиками для каждого пользователя

v1.1.0 (2025-11-22)

  • Google Sheets интеграция для статистики
  • Уведомления администраторам
  • Улучшенная обработка Instagram каруселей
  • Реферальная система

v1.0.0 (2024-12-07)

  • Instagram: видео, фото, карусели, reels
  • YouTube: видео, shorts
  • TikTok: видео без водяного знака
  • Twitter/X: видео, фото
  • VK: видео, клипы
  • AI: перевод на русский (GPT-4o-mini)
  • AI: рерайт в 3 стилях (GPT-4o-mini)
  • AI: OCR с изображений (GPT-4o vision)
  • Интерактивные inline-кнопки

License

MIT License - see LICENSE for details.


Disclaimer

Этот бот предназначен только для личного использования. Уважайте авторские права и условия использования платформ социальных сетей.


Powered by Claude Code

About

Telegram Bot for downloading media from social networks (Instagram, YouTube, TikTok, VK, X)

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages