145 lines
3.9 KiB
Markdown
145 lines
3.9 KiB
Markdown
|
|
# 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 # Этот файл
|
|||
|
|
```
|
|||
|
|
|