Skip to content

Alpha  ·  Linux  ·  MIT

The media center for the self-hosting enthusiast.

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 — all from a real-time browser UI built for a TV across the room.

Zero-config SQLite. No Docker. No transcoding server. No accounts. No cloud.

Media Centaur centaur-archer logo

UI overhaul in progress

A higher-quality interface, shipping page by page.

Every page is fully operational throughout — we're raising the bar on craft, not gating features behind the rebuild.

  • Home Done
  • Library In progress
  • Release tracking In progress
  • Acquisition In progress
  • Dashboard In progress
  • Review In progress
  • Settings In progress

macOS support — experimental

Coming to Apple Silicon.

Linux is fully supported today. The macOS port is in active development — platform architecture complete, runtime parity testing ongoing.

Even after the Mac build ships, expect an experimental period. We don't own Mac hardware, so the macOS path is Linux-developer-tested only. If you run it there, please open a GitHub issue with [macOS] in the title so we can sharpen the experience from real-world reports.

Everything the *ARR stack does, in one app — plus the player.

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.

Library management

Watches your directories, identifies movies and TV shows via TMDB, downloads artwork. Low-confidence matches wait for manual review rather than polluting your library with wrong guesses.

Playback

Launches mpv on the local machine, tracks your progress, resumes where you left off, auto-advances to the next episode. World-class subtitle rendering out of the box.

Release tracking

Monitors TMDB daily for upcoming movies and new TV seasons tied to the shows in your library. No more "wait, there's a season 4?"

Optional acquisition

Search and queue downloads via Prowlarr. Entirely optional — Media Centaur is a full library manager without it. Bring your own indexers.

Couch-first UI

Keyboard and gamepad navigation — plus any universal remote that can send keystrokes (Bluetooth pairing or a Flirc USB). Large artwork, dark-first, built to drive a TV from across the room.

Real-time

Every change — new file detected, metadata fetched, playback started — appears instantly via Phoenix LiveView. No polling. No refresh button.

Cinema for the couch.

Dark-first, keyboard- and gamepad-friendly, designed for the distance between a couch and a TV.

Home — cinematic landing page with Continue Watching, Recently Added, and Coming Up rows
Home — assembled landing page
Library grid — a wall of poster artwork for the curated showcase catalog
Library grid
Movie detail modal — backdrop, poster, and metadata for Nosferatu (1922)
Movie detail
TV series detail — seasons and episode list with per-episode thumbnails
Series detail — rich metadata
TV series detail for indie content — Pioneer One with tasteful placeholder thumbnails
Series detail — graceful fallback
Coming Up This Week — release cards with live grab-status badges (Grabbed / Searching / Pending / Scheduled)
Coming Up — live grab-status badges
Upcoming — calendar of tracked releases plus active-shows panel and the Coming Up Week digest
Upcoming — tracking calendar
Watch history — Titles Watched, Hours Watched, Current Streak stats above a 52-week activity heatmap
Watch history — stats & heatmap
Settings — configuration surface for library, TMDB, pipeline, playback, and system
Settings
Review queue — pending files awaiting metadata confirmation
Review queue
Downloads — Activity tab showing grab lifecycle across Searching, Grabbed, Pending, Abandoned, and Cancelled states
Downloads — grab lifecycle
mpv

Why mpv

Great software delegates.

Media Centaur hands playback off to mpv instead of bundling a player or using an in-browser one. mpv renders every subtitle format correctly — ASS typesetting, SRT, PGS/SUP image subs, external or embedded — and plays virtually every container and codec at full fidelity.

mpv also exposes a Lua scripting surface and a stable JSON IPC socket, both of which Media Centaur uses. The couch overlays, progress tracking, and next-episode logic all hook into mpv rather than replacing it.

Deliberately not

This is the wrong project if you want…

  • To stream to other devices. No web player for remote clients, no Chromecast / AirPlay / DLNA, no mobile app. Media Centaur plays locally. Jellyfin exists.
  • Transcoding. Media Centaur never re-encodes your files. It plays what's on disk, as authored. Fix the file or the hardware, not the library manager.
  • Docker or containerized deployment. Native Linux application — install script, systemd user unit, SQLite. The *ARR stack in Docker is a well-trodden path if you want that.
  • Multi-user accounts, sharing, access control. Single-user app for the person at the keyboard or on the couch. A reverse proxy with basic auth is as fancy as it gets.

Install

One line on Linux x86_64.

Downloads the latest release, verifies its checksum, installs atomically, and sets up a systemd user unit.

curl -fsSL https://raw.githubusercontent.com/media-centaur/media-centaur/main/installer/install.sh | sh

Need details, an update path, or an uninstall? Installation guide →

Requirements

System packages

Arch: pacman -S sqlite mpv inotify-tools

Debian/Ubuntu: apt install sqlite3 mpv inotify-tools