Skip to content

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.m3u8master-плейлист: вариант видео + рендиции дорожек
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 и память

Опубликовано под лицензией MIT