# Instagram → Telegram Bot Telegram-бот для мониторинга Instagram: отслеживает новые посты и сториз у выбранных подписок и присылает их в Telegram. ## Как это работает 1. Авторизуется в Instagram через cookies.txt (без пароля) 2. Получает список всех подписок 3. Проверяет новые посты (за последние N часов) и активные сториз 4. Скачивает медиа и отправляет в Telegram 5. Цикл повторяется каждые N минут ## Требования - Python 3.12+ - Telegram Bot Token (через [@BotFather](https://t.me/BotFather)) - Cookies Instagram (сессионная кука `sessionid`) ## Установка ### Локально ```bash pip install -r requirements.txt ``` Скопируй `.env.example` в `.env` и заполни настройки. Положи `cookies.txt` (Netscape format) в `data/`. ```bash python bot.py ``` ### Docker ```bash docker compose up -d ``` ## Настройка ### Telegram Создай бота через [@BotFather](https://t.me/BotFather), получи токен. Узнай свой `chat_id` (можно у [@userinfobot](https://t.me/userinfobot)). ### Instagram cookies Бот использует cookies вместо логина по паролю. Экспортируй sessionid из браузера в формате Netscape: ``` .instagram.com TRUE / TRUE 0 sessionid <значение> .instagram.com TRUE / TRUE 0 ds_user_id .instagram.com TRUE / TRUE 0 csrftoken <токен> ``` Положи файл в `data/cookies.txt`. ### Переменные окружения (`.env`) | Переменная | По умолчанию | Описание | |---|---|---| | `TELEGRAM_BOT_TOKEN` | — | Токен бота Telegram | | `TELEGRAM_CHAT_ID` | — | ID чата для отправки | | `INSTAGRAM_USERNAME` | — | Instagram username | | `CHECK_INTERVAL_MINUTES` | `15` | Интервал проверки | | `MAX_MEDIA_SIZE_MB` | `50` | Макс. размер медиа | | `MAX_POST_AGE_HOURS` | `24` | Возраст постов для проверки | | `CONCURRENT_CHECKS` | `5` | Параллельных запросов | | `DOWNLOAD_DIR` | `/data/downloads` | Папка для загрузки | ## Команды | Команда | Описание | |---|---| | `/start` | Информация о боте | | `/check` | Проверить обновления сейчас | | `/status` | Статистика базы | | `/health` | Статус подключений | | `/stop` | Остановить мониторинг | ## API Бот использует неофициальный Instagram Private API: - **Посты**: `i.instagram.com/api/v1/feed/user/{pk}/` — мобильное API - **Сториз**: `www.instagram.com/api/v1/feed/user/{pk}/story/` — веб-API (Chrome UA) ## Проект ``` ├── bot.py # Telegram bot (aiogram) ├── instagram_monitor.py # Instagram API клиент ├── config.py # Конфиг из .env ├── requirements.txt ├── Dockerfile ├── docker-compose.yml └── data/ ├── cookies.txt # Сессия Instagram └── downloads/ # Скачанные медиа ```