API Docs

Склейка видео — рекомендации и описание endpoints

Базовый URL

Все запросы к API выполняются относительно корня сервиса. Если сервис доступен по https://iqsport24.ru/scotch/, то базовый путь API: server2/videoapi/ (относительно /scotch/).

https://iqsport24.ru/scotch/server2/videoapi/

Аутентификация

Защищённые endpoints требуют аутентификации одним из способов:

Endpoints

Регистрация и вход (без авторизации)

POST server2/videoapi/auth/register
Body: {"username","email","password","plan":"free"} — возвращает access_token, user, опционально api_key.
POST server2/videoapi/auth/login
Body: {"username","password"} — возвращает access_token, user.

Склейка по URL

POST server2/videoapi/merge (требует авторизации)
Body: {"video_urls": ["url1","url2",...], "aspect_ratio": "16:9"|"9:16"|"1:1"|"4:3", "quality": "low"|"medium"|"high"|"ultra"}
Ответ: {"task_id", "status", "message", "download_url"}. Дальше опрашивать GET server2/videoapi/task/{task_id} и при success_flag === 1 скачать по GET server2/videoapi/download/{task_id}.

Склейка из загруженных файлов

POST server2/videoapi/merge/upload (требует авторизации)
multipart/form-data: files (1–5 видеофайлов), aspect_ratio, quality (строки как выше). Ответ — тот же формат с task_id, далее опрос task и download по ссылке.

Статус задачи и скачивание

GET server2/videoapi/task/{task_id}{"status","progress","success_flag","message"}. При success_flag === 1 результат готов.
GET server2/videoapi/download/{task_id} — отдача файла MP4 (скачивание).

API-ключи (кабинет)

GET server2/videoapi/auth/api-keys — список ключей.
POST server2/videoapi/auth/create-api-key — создание ключа (body: {"name","expiry_days"}).
PATCH server2/videoapi/auth/api-keys/{key_id} — переименование. DELETE — удаление/отзыв.

Рекомендации по использованию

Количество видео: от 1 до 5 в одной задаче. Больше задач — отдельными запросами.
Размер файла при загрузке: до 20 МБ на файл. При склейке по URL сервис сам загружает по ссылке; убедитесь, что URL доступны с нашего сервера.
Форматы: 16:9 (1920×1080), 9:16 (1080×1920), 1:1 (1080×1080), 4:3 (1440×1080). Исходное видео масштабируется с сохранением пропорций и при необходимости дополняется полосами.
Качество: low (быстрее, больше размер), medium — баланс, high / ultra — лучше качество, дольше обработка.
Опрос статуса: рекомендуется интервал 2–3 секунды. Не делайте запросы чаще 1 раза в секунду, чтобы не нагружать сервер.
Кэш: при склейке по URL результат может кэшироваться по набору URL + aspect_ratio + quality; повторный запрос с теми же параметрами может вернуть существующий task_id.
Скачивание: ссылка на download действует ограниченное время; сохраняйте файл сразу после готовности задачи. Временные файлы на сервере периодически удаляются.
Типы файлов: для загрузки принимаются видеофайлы (MIME video/*). Рекомендуется MP4 (H.264/AAC). Файлы без звуковой дорожки обрабатываются автоматически (добавляется тишина).