Point it at your video directories. Media Centaur identifies your movies and TV shows via TMDB, downloads artwork, tracks your progress, and plays everything locally through mpv — in a real-time browser UI that's fast at your desk and made for your couch.
Zero-config SQLite. No Docker. No transcoding server. No accounts. No cloud.
Most self-hosted media setups are four services in a trench coat. Media Centaur is one Elixir app that does the library management, the metadata, the review workflow, and the playback — and hands the actual decoding off to mpv.
No cloud. No accounts. One library, on your machine. Media Centaur runs entirely on your own hardware — the metadata it fetches comes from TMDB and stops there. Everything else stays on disk, in a plain SQLite file you can read, back up, and move.
Media Centaur hands playback off to mpv instead of bundling a player. mpv renders every subtitle format correctly — ASS typesetting, SRT, PGS/SUP image subs — and plays virtually every container and codec at full fidelity. It also exposes a Lua scripting surface and a stable JSON IPC socket, both of which Media Centaur uses.
Media Centaur is opinionated about what it isn't. If you need one of these, a different tool will serve you better.
No Chromecast, AirPlay, or DLNA, and no mobile app — it doesn't stream to other devices. Jellyfin exists for that.
It never re-encodes your files. mpv plays exactly what's on disk, at full fidelity.
No logins, no permissions, no access control. The people who share the install pick a profile on the screen and keep their own progress and history — one library for all of them.
Downloads the latest release, verifies its checksum, installs atomically, and sets up a systemd user unit (launchd on macOS). Linux x86_64 is the primary, fully-supported platform; macOS Apple Silicon is experimental.
curl -fsSL https://raw.githubusercontent.com/media-centaur/media-centaur/main/installer/install.sh | sh