videoDownloadTGbot/instagram-downloader/README.md
vrubelroman 436e0cd541 Рефакторинг: микросервисная архитектура
- Разделение на микросервисы: youtube-downloader, instagram-downloader, vk-downloader
- Основной бот в корне проекта, работает через HTTP API с сервисами
- Каждый сервис запускается отдельно в своей папке
- Видео сохраняются в папке video/ и не удаляются
- Обновлена документация и архитектура
- Скрипты для Instagram cookies перенесены в instagram-downloader/
2025-12-11 01:07:04 +03:00

3.9 KiB
Raw Permalink Blame History

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

Сервис не может скачать видео

  1. Проверьте наличие файла instagram_cookies.txt в папке instagram-downloader/
  2. Проверьте срок действия cookies (они могут истечь)
  3. Обновите cookies через скрипт update_instagram_cookies.sh
  4. Проверьте логи: 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                       # Этот файл