Skip to main content

API Reference

All paths below are relative to the backend base URL, typically http://localhost:5000 during local development.

Public and tooling endpoints

MethodPathAuthPurpose
GET/api/docs-yamlPublicDownload the OpenAPI YAML.
GET/api/docsPublicOpen Swagger UI for the backend API.

Media

MethodPathAuthPurpose
GET/api/mediaBearerList media entries with search, filters, and pagination.
GET/api/media/insightsBearerReturn codec, resolution, bitrate, format, and language distributions.
GET/api/media/statisticsBearerReturn top-level library statistics such as total files and AV1 / Opus share.
DELETE/api/mediaBearerDelete a media file and matching DB entries by absolute path.
POST/api/media/renameBearerRename a media file and update stored metadata.
POST/api/media/uploadBearerUpload one or more files into a directory under MEDIA_DIR.
POST/api/media/download-ticketBearerIssue a 5-minute download ticket for one file path.
GET/api/media/downloadTicketStream the file matched by a valid ticket.

Filesystem

MethodPathAuthPurpose
GET/api/filesystemBearerReturn a recursive directory tree rooted at MEDIA_DIR.

Commands and FFmpeg

MethodPathAuthPurpose
GET/api/commandsBearerList saved command presets.
POST/api/commandsBearerCreate a command preset.
PUT/api/commands/{id}BearerUpdate a command preset.
DELETE/api/commands/{id}BearerDelete a command preset.
POST/api/commands/{id}/runBearerQueue a preset against one input file.
GET/api/commands/processesBearerList queued, running, and completed jobs.
GET/api/commands/processes/{processId}BearerGet one job including stdout and stderr.
DELETE/api/commands/processes/{processId}BearerRemove a finished job record.
POST/api/commands/processes/{processId}/killBearerStop a running job or cancel a queued one.
POST/api/commands/processes/clear-completedBearerRemove completed job records in bulk.

Compare

MethodPathAuthPurpose
GET/api/compareBearerCompare metadata for two indexed media paths.
POST/api/compare/vmaf/jobsBearerQueue a VMAF comparison job.
GET/api/compare/vmaf/jobs/{jobId}BearerFetch one VMAF job.
GET/api/compare/vmaf/jobsBearerList VMAF job history.
GET/api/compare/historyBearerList compare history entries.
GET/api/compare/history/{historyId}BearerFetch one compare history entry.
DELETE/api/compare/history/{historyId}BearerDelete one compare history item if not active.
DELETE/api/compare/historyBearerClear compare history in bulk.

Obtain and TMDB

MethodPathAuthPurpose
GET/api/obtainBearerList obtain items.
GET/api/obtain/searchBearerSearch TMDB.
GET/api/obtain/{mediaType}/{tmdbId}/titlesBearerGet alternate TMDB titles.
GET/api/obtain/{mediaType}/{tmdbId}/translationsBearerGet TMDB translations.
POST/api/obtainBearerCreate or resolve a manual obtain item.
POST/api/obtain/auto-matchBearerInfer a TMDB item from a filename and save it.
DELETE/api/obtain/{id}BearerRemove an obtain entry.

Common payload snippets

Rename media

{
"path": "D:\\Media\\Movies\\Movie.mkv",
"new_name": "Movie - Remux"
}

Run command preset

{
"input_path": "D:\\Media\\Movies\\Movie.mkv"
}

Create VMAF job

{
"left_path": "D:\\Media\\Movies\\Movie-source.mkv",
"right_path": "D:\\Media\\Movies\\Movie-converted.mkv"
}

Auto-match obtain item

{
"file_path": "D:\\Downloads\\Show.Name.S01E01.1080p.mkv"
}

Which page to use for detail