HTTP API хоста
Сервер отдаёт только API — интерфейса у него нет. Кросс-доменные запросы разрешены, поэтому клиент может жить на другом origin.
Сервер и файлы
| Метод и путь | Назначение |
|---|---|
GET /api/info | данные о сервере: доступность ffmpeg, кодек, папки, число файлов |
GET /api/media | файлы этого хоста |
GET /api/media/{id} | одна запись + дорожки аудио и субтитров |
GET /api/resolve?size=…&fingerprint=… | поиск файла по отпечатку содержимого (для лаунчера) |
Идентификатор файла — отпечаток содержимого (размер и хеш краёв), поэтому ссылки и метаданные переживают переименование и перенос файла.
Воспроизведение
| Метод и путь | Назначение |
|---|---|
GET /raw/{id} | прямой стрим с HTTP Range — для браузерных файлов |
GET /hls/{id}/playlist.m3u8 | master-плейлист: вариант видео + рендиции дорожек |
GET /hls/{id}/video.m3u8 | медиа-плейлист видео (VOD) |
GET /hls/{id}/segment/N.ts | видеосегмент, транскодируется на лету |
GET /hls/{id}/audio/K.m3u8 и …/audio/K/N.ts | аудиодорожка K отдельным потоком |
GET /hls/{id}/subs/K.m3u8 и …/subs/K/N.vtt | сегменты субтитров в WebVTT |
GET /api/media/{id}/subtitle/N.vtt | вся дорожка субтитров одним файлом |
Какой режим у файла, клиент узнаёт из поля streamType: direct — отдаётся как есть, hls — транскодируется, unsupported — воспроизвести нельзя.
Каталог и управление библиотекой
Общий каталог, группы, метаданные и запуск на плеерах доступны через отдельный HTTP API библиотеки на порту 8081.
Диагностика
| Метод и путь | Назначение |
|---|---|
GET /api/debug/sessions | активные сессии транскодирования, их прогресс, CPU и память |