diff --git a/README.md b/README.md new file mode 100644 index 0000000..6731215 --- /dev/null +++ b/README.md @@ -0,0 +1,97 @@ +# 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` | Статистика базы | +| `/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/ # Скачанные медиа +```