Skip to content

Media library availability

HTTP routes and behavior for media library availability.

GET /api/config advertises media_library_availability. Video instances store opt-in media_server_config.availability_scan: { enabled, library_ids }, independent of account-sharing libraries. IDs identify native catalog libraries, not provider sharing IDs. Empty selection scans nothing.

GET /api/admin/media-availability/{instanceID}/libraries # admin: native movie/TV libraries {libraries:[{id,name,collection_type}]}
GET /api/admin/media-availability/{instanceID}/status # admin: state disabled|idle|running|failed, last success/attempt, item count, safe error
POST /api/admin/media-availability/{instanceID}/scan # admin: request a read-only scan; 202 status
GET /api/admin/users/{userID}/media-availability # admin: explicit household associations and eligible server/library choices
PUT /api/admin/users/{userID}/media-availability # admin: {associations:[{instance_id,library_ids}]}; [] removes local associations
POST /api/requests/{requestID}/follow/stop # request owner/admin: stop future missing-episode scheduling

Household associations grant local inventory visibility, never provider accounts, ordinary instance grants, sharing, credentials, or playback control. A linked account takes precedence and atomically retires its household association. Unlinking never restores it. Saving associations checks current configuration, native library IDs, account state, and concurrent edits. New scan libraries never implicitly expand saved access.

Status, create, and personal request responses add availability (status, certainty, sources, measured 4K, and canonical season coverage) and following state. Existing acquisition status, delivery state, and per-arr chips remain truthful to their targets. MCP status exposes the same projection. request_mode is missing by default or library_copy for an explicit copy in the selected arr. Fresh accessible movie coverage makes an ordinary request a no-op; unknown coverage remains retryable. Library-copy requests retain existing approval and quota rules.

TV missing-content requests save canonical episode scope and exclusions, then monitor/search exact current Sonarr episode IDs. Approval review shows the saved missing and initially satisfied scope. New series have automatic monitoring/search disabled. A durable five-minute follower considers newly aired episodes only in explicitly requested seasons, retaining the original approval and season quota. Separate monitoring/search stages preserve uncertain outcomes for reconciliation. Stopping follow-up does not delete files or alter shared Sonarr monitoring. Existing automation outside this request remains independent. Unknown episode identities or ordering cannot prove complete coverage; date-only air metadata becomes eligible after its UTC date ends.

Inventory scans never create requests or followers. Daily complete generations reconcile deletions; five-minute incremental checks discover additions and changes. Failed scans preserve old inventory without presenting it as fresh evidence. Recipient or household verification uses current access and real files, with bounded display caching and fresh request checks. Content policy remains enforced at the existing request/title chokepoints. Seerr-compatible request history and arr-specific completion notifications retain their existing semantics.

View the maintained source for this page.