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