LIVE
daily egress
0.00 TB
reset in --:--:--

Video Hosting API 2.3.0 · OAS 3.1

Внутренний API для загрузки, транскодирования и потоковой отдачи видео. Все стриминговые эндпоинты поддерживают HTTP Range и чанкованную передачу.

https://api.vh-media.internal/v1
videos
GET
/videos
Список всех видео
page
integer, query
Номер страницы
status
string, query
ready · processing · failed
{ "items": [ { "id": "8f21a-c3d9", "title": "conf-keynote-4k.mp4", "size_bytes": 5153960755, "status": "ready" } ], "total": 1284 }
POST
/videos
Загрузить новое видео (multipart, chunked)
file
binary
Видеофайл, до 20 GB
chunk_size
integer
Размер чанка в байтах, по умолчанию 8388608
{ "upload_id": "up_9f3c...", "status": "queued" }
GET
/videos/{id}
Метаданные видео
{ "id": "8f21a-c3d9", "codec": "HEVC 10-bit", "resolution": "3840x2160", "duration_sec": 4123, "size_bytes": 5153960755 }
GET
/videos/{id}/stream
Потоковая отдача (Range-запросы, HLS chunks)
Range
string
Например: bytes=0-8388607
Content-Range: bytes 0-8388607/5153960755 Content-Type: video/mp4
GET
/videos/{id}/thumbnail
Превью-кадр видео
Content-Type: image/webp
DELETE
/videos/{id}
Удалить видео и все связанные ресурсы
No Content
transcode
POST
/transcode/jobs
Запустить задачу транскодирования
video_id
string
ID исходного видео
preset
string
h264_1080p · h265_4k · av1_master
{ "job_id": "job_7c21...", "status": "queued", "eta_sec": 340 }
GET
/transcode/jobs/{id}
Статус задачи транскодирования
{ "job_id": "job_7c21...", "progress": 63, "status": "processing" }