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