docs: add README with setup and usage instructions
This commit is contained in:
97
README.md
Normal file
97
README.md
Normal file
@@ -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 <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/ # Скачанные медиа
|
||||
```
|
||||
Reference in New Issue
Block a user