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 — воспроизвести нельзя.
Библиотека: дерево и метаданные
Эти эндпоинты появляются вместе с плагином Prism.Plugins.Library.
| Метод и путь | Назначение |
|---|---|
GET /api/library/tree | всё дерево групп и членство файлов одним запросом |
POST /api/library/nodes | создать группу |
PUT / DELETE /api/library/nodes/{id} | переименовать, перенести, удалить ветку |
PUT / DELETE /api/library/nodes/{id}/items/{mediaId} | членство файла в группе |
PUT / DELETE /api/media/{id}/meta | свободные пары ключ-значение у файла |
PUT / DELETE /api/library/nodes/{id}/meta | то же для группы |
POST /api/library/scan | прогнать обслуживание немедленно; ?replace=true — очистить библиотеку и разложить заново |
POST /api/library/gc | удалить записи файлов, которых нет на диске |
Диагностика
| Метод и путь | Назначение |
|---|---|
GET /api/debug/sessions | активные сессии транскодирования, их прогресс, CPU и память |