videoDownloadTGbot/instagram-downloader/README.md

145 lines
3.9 KiB
Markdown
Raw Normal View History

# Instagram Downloader Service
Микросервис для скачивания видео с Instagram.
## Требования
- Docker и Docker Compose
- Файл с cookies Instagram (`instagram_cookies.txt` в папке `instagram-downloader/`)
## Быстрый старт
### 1. Настройка cookies
Перед запуском сервиса необходимо получить cookies Instagram. Есть несколько способов:
#### Способ 1: Через скрипт (рекомендуется)
```bash
cd instagram-downloader
./get_instagram_cookies.sh
```
Скрипт попросит выбрать браузер и автоматически извлечет cookies.
#### Способ 2: Обновление существующих cookies
```bash
cd instagram-downloader
./update_instagram_cookies.sh
```
#### Способ 3: Вручную
См. подробные инструкции в `INSTAGRAM_COOKIES_INSTRUCTIONS.md`
### 2. Запуск сервиса
#### Вариант 1: Через корневой docker-compose (рекомендуется)
```bash
cd .. # вернуться в корень проекта
docker compose up -d instagram-downloader
```
#### Вариант 2: Отдельно
```bash
docker compose up -d
```
### 3. Проверка работы
```bash
# Проверка здоровья сервиса
curl http://localhost:5556/health
# Должен вернуть: {"status":"ok","service":"instagram-downloader"}
```
## API Endpoints
### GET /health
Проверка здоровья сервиса.
**Ответ:**
```json
{
"status": "ok",
"service": "instagram-downloader"
}
```
### POST /download/stream
Скачивание видео с Instagram.
**Запрос:**
```json
{
"url": "https://www.instagram.com/p/..."
}
```
**Ответ:**
- Успех: бинарные данные видео (Content-Type: video/mp4)
- Ошибка: JSON с описанием ошибки
## Порты
- Внешний порт: **5556**
- Внутренний порт контейнера: **5000**
## Обновление cookies
Cookies Instagram имеют ограниченный срок действия. Рекомендуется обновлять их раз в несколько недель.
Для обновления:
```bash
cd instagram-downloader
./update_instagram_cookies.sh
```
После обновления перезапустите сервис:
```bash
docker compose restart instagram-downloader
```
## Troubleshooting
### Сервис не может скачать видео
1. Проверьте наличие файла `instagram_cookies.txt` в папке `instagram-downloader/`
2. Проверьте срок действия cookies (они могут истечь)
3. Обновите cookies через скрипт `update_instagram_cookies.sh`
4. Проверьте логи: `docker compose logs instagram-downloader`
### Cookies истекли
Если видите ошибку "Instagram cookies истекли", выполните:
```bash
cd instagram-downloader
./update_instagram_cookies.sh
```
Затем перезапустите сервис.
## Структура файлов
```
instagram-downloader/
├── app.py # Основной код сервиса
├── Dockerfile # Образ Docker
├── docker-compose.yml # Конфигурация для отдельного запуска
├── requirements.txt # Python зависимости
├── get_instagram_cookies.sh # Скрипт для получения cookies
├── update_instagram_cookies.sh # Скрипт для обновления cookies
├── INSTAGRAM_COOKIES_INSTRUCTIONS.md # Подробные инструкции по cookies
└── README.md # Этот файл
```