Рефакторинг: микросервисная архитектура
- Разделение на микросервисы: youtube-downloader, instagram-downloader, vk-downloader - Основной бот в корне проекта, работает через HTTP API с сервисами - Каждый сервис запускается отдельно в своей папке - Видео сохраняются в папке video/ и не удаляются - Обновлена документация и архитектура - Скрипты для Instagram cookies перенесены в instagram-downloader/
This commit is contained in:
parent
8024eea868
commit
436e0cd541
41 changed files with 1348 additions and 693 deletions
144
instagram-downloader/README.md
Normal file
144
instagram-downloader/README.md
Normal file
|
|
@ -0,0 +1,144 @@
|
|||
# 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 # Этот файл
|
||||
```
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue