- Замена reply_video() на reply_document() в bot.py — Telegram больше не сжимает видео - Исправление format_id в get_youtube_formats(): конкретные format codes + fallback best[height<=N] - Замена bestvideo[height<=N]+bestaudio на best[height<=N] — гарантированно работает когда YouTube не отдаёт отдельные video-only потоки для низких разрешений - Добавлено логирование реально скачанного формата для диагностики |
||
|---|---|---|
| .. | ||
| app.py | ||
| docker-compose.yml | ||
| Dockerfile | ||
| get_instagram_cookies.sh | ||
| instagram_cookies.txt | ||
| INSTAGRAM_COOKIES_INSTRUCTIONS.md | ||
| README.md | ||
| requirements.txt | ||
| update_instagram_cookies.sh | ||
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 # Этот файл