Features

What Playarr Server does today

Everything on this page exists in the repository now. What does not exist is listed at the bottom, in the same detail.

Install the server

Library and catalogue

One catalogue across every kind of media you keep.

Films, series, music and books
A single catalogue spanning video, audio and publishing, each with the structure that suits it, seasons and episodes, artists and albums, authors and books.
Matched against real identifiers
Titles are reconciled using the identifiers your library tools already resolved, rather than guessed from file names alone.
Views and filters
Browse by kind, filter down, and sort within a library without waiting on a full re-scan.
Search across your library
One search over everything catalogued, returning works, people and collections.
Semantic “more like this”
A small sentence-embedding model runs on your own CPU to suggest related titles. No cloud service is involved and it works offline once the model is fetched.

Playback

Direct play where it fits, transcode where it does not.

Direct play with real seeking
When the file already suits the client, it is served as-is with proper range requests, so scrubbing behaves.
On-demand transcoding
A quality ladder for the cases where the client cannot take the original. Encoding happens on the server; clients receive HLS.
Background re-encoding via Tdarr
Library-wide encode work is dispatched to a Tdarr worker pool as a completely separate, lower-priority system that yields while people are watching.
Subtitles, audio tracks and chapters
Subtitle selection with a timing offset, multiple audio tracks with a preferred language, and chapter markers.
Continue watching
Playback position follows you between devices, with explicit watched and unwatched state.
Playlists
Including nested playlists and ones that mix video and audio.
Offline playback on device
Originals can be kept on a device for playing without a connection. Transcoded copies for offline use are not built yet.

People and permissions

A model that suits a household, not just an owner.

Profile picker with PINs and avatars
The “who is watching” screen, with a PIN where you want one.
Deny-by-default library grants
Nobody reaches a library until they are granted it, an empty grant list gives access to nothing.
Streaming is a separate grant
Being an administrator does not silently grant the ability to watch. An admin account still needs the streaming grant, deliberately.
Keeping files off-device is the default
Permission to retain a copy on a device is off unless it is granted.
Invitations
Bring someone in with a one-use, time-limited invitation rather than by handing over credentials.
Accounts that persist
Real accounts with password hashing, and tokens that rotate rather than one long-lived credential.

Access and identity

Choose the posture that matches where the server lives.

Two authentication postures
Full accounts with hashed passwords by default, or zero-credential auto-login for a trusted LAN if the operator explicitly opts in.
Private ranges by default
The trusted-network opt-in is limited to private and loopback address ranges, so a mistaken port forward does not hand out an admin session.
Sign in on a television by code
Standards-based device-code pairing, so nobody types a password with a remote control.
Hosted first-contact linking
The hosted Playarr service can broker the first handshake between an app and your server. The short-lived record carries device and server details only, never a password or a browser token.
Tokens that rotate
Access tokens with refresh rotation rather than one long-lived credential.

Running it

One binary, three deployment shapes, one embedded database.

Single binary, role-gated
The same executable runs as the API, as a worker, or as both in one process. Choosing a role is a configuration change.
Embedded SQLite
One database file per server, no database service to run. Extra servers join through peer sync.
Three deployment shapes
A systemd unit, a Docker Compose stack, or Kubernetes with a Helm chart and overlays, all shipped in the repository.
HTTPS without a reverse proxy
Built-in ACME with an HTTP-01 listener, for home servers that would rather not run another moving part in front.
Admin console
Live sessions and playback history, with the ability to stop a session.
A published API contract
The OpenAPI description is generated from the handlers, drift-tested in CI and served by the running server. The TypeScript client is generated from it.

Beyond one server

Unusual, and entirely optional.

Peer groups
Independently owned, independently databased servers can share accounts, permissions, invitations and catalogue metadata over a signed protocol, and route playback between each other by redirect or proxy.
Inert when unused
Run a single server and none of this does anything. It is not a background service you have to reason about.

Straight answers

Not built yet

Listing this is cheaper for everyone than having you discover it after an evening of setup.

CapabilityStatusDetail
Hardware-accelerated transcodingNot built yetSoftware encoding only. This is the biggest practical gap on low-power hardware.
Chromecast and AirPlayNot built yetNo casting of any kind.
Live TV, DVR and programme guidesNot built yetNo tuner support at all.
Protected-content playbackNot built yetNo support for playing back protected content.
PhotosNot built yetThere is no photo library concept.
Intro and credits detectionNot built yetNothing skips a title sequence for you.
Trailers, extras and theme musicNot built yetNot present.
Watch-togetherNot built yetNo synchronised playback between viewers.
PluginsNot built yetThere is no plugin system.
App-store distributionNot built yetNothing is published to any app store on any platform.
Readable booksNot built yetBooks are catalogued, but no client reads them yet.
Transcoded offline copiesNot built yetOffline playback keeps originals only.
Fine-grained access rulesNot built yetRating ceilings, tag rules, session caps and time windows are modelled but not yet enforced.

There is no 1.0 release, and the deployment manifests have not yet been proven end to end on every deployment shape. Progress is tracked in the open in therepository.