OpenClosePath Video API
REST API для загрузки, конвертации, обрезки и стриминга видео. Один ключ — все операции с медиа. Open path — публичный доступ, Close path — приватный стрим по токену.
Быстрый старт
Три шага — от установки до первого видео.
Получите ключ
Зарегистрируйтесь и скопируйте API-ключ.
Загрузите файл
POST /v1/upload → получите file_id.
Запустите задачу
POST /v1/transcode → отслеживайте job_id.
Авторизация
Передавайте ключ в заголовке Authorization: Bearer.
curl https://api.openclosepath.dev/v1/jobs \ -H "Authorization: Bearer ocp_live_xxx"
Endpoints
Все запросы — HTTPS. Формат ответа — JSON.
Загрузить видеофайл. Возвращает file_id для дальнейших операций.
curl -X POST https://api.openclosepath.dev/v1/upload \ -H "Authorization: Bearer ocp_live_xxx" \ -F "file=@video.mp4"
Конвертировать в нужный формат / качество (H.264, H.265, VP9, AV1).
curl -X POST https://api.openclosepath.dev/v1/transcode \ -H "Authorization: Bearer ocp_live_xxx" \ -H "Content-Type: application/json" \ -d '{"file_id":"file_9f2a","format":"mp4","codec":"h264","resolution":"1080p","bitrate":"5000k"}'
Обрезать фрагмент по таймкоду (секунды или HH:MM:SS).
curl -X POST https://api.openclosepath.dev/v1/trim \ -H "Authorization: Bearer ocp_live_xxx" \ -d '{"file_id":"file_9f2a","start":"00:00:10","end":"00:01:30"}'
Извлечь аудиодорожку в MP3 / AAC / WAV.
curl -X POST https://api.openclosepath.dev/v1/extract-audio \ -H "Authorization: Bearer ocp_live_xxx" \ -d '{"file_id":"file_9f2a","format":"mp3","bitrate":"192k"}'
Получить превью-кадр из видео.
curl "https://api.openclosepath.dev/v1/thumbnail?file_id=file_9f2a&time=00:00:05&w=640" \ -H "Authorization: Bearer ocp_live_xxx"
Статус фоновой задачи: queued, processing, done, failed.
curl https://api.openclosepath.dev/v1/jobs/job_7b21 \ -H "Authorization: Bearer ocp_live_xxx" // → {"id":"job_7b21","status":"done","output_url":"https://cdn.openclosepath.dev/..."}
Стриминг с поддержкой Range заголовков (HLS / DASH).
curl https://api.openclosepath.dev/v1/stream/file_9f2a \ -H "Authorization: Bearer ocp_live_xxx"
Коды ошибок
Все ошибки возвращаются в формате {"error":{"code":...,"message":...}}.
400 — Некорректный запрос (валидация полей) 401 — Неверный или отсутствующий API-ключ 403 — Нет доступа к файлу / превышен лимит плана 404 — Файл или задача не найдена 413 — Слишком большой файл (макс. 2 ГБ) 429 — Превышен rate limit (60 req/min) 500 — Внутренняя ошибка сервера
Rate limits
Free: 60 запросов/мин · 2 ГБ хранилища
Pro: 600 запросов/мин · 200 ГБ хранилища
Enterprise: индивидуально