{"id":50137466,"url":"https://github.com/media-centaur/media-centaur","last_synced_at":"2026-06-13T01:02:00.148Z","repository":{"id":352025881,"uuid":"1161662398","full_name":"media-centaur/media-centaur","owner":"media-centaur","description":"Library management and playback for your movies and TV — the *ARR stack and a couch-ready player in one self-hosted Linux app. Watches directories, identifies via TMDB, plays through mpv. No Docker, no accounts, no transcoding, no streaming.","archived":false,"fork":false,"pushed_at":"2026-05-30T23:48:40.000Z","size":112217,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-31T00:11:59.725Z","etag":null,"topics":["broadway","elixir","jellyfin-alternative","linux","media-center","media-library","mpv","phoenix","phoenix-liveview","prowlarr","radarr-alternative","self-hosted","sonarr-alternative","sqlite","tmdb"],"latest_commit_sha":null,"homepage":"https://media-centarr.net/","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/media-centaur.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-19T11:19:39.000Z","updated_at":"2026-05-30T23:48:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"6f981cc7-4f0f-4ac9-a452-62bd167c06e7","html_url":"https://github.com/media-centaur/media-centaur","commit_stats":null,"previous_names":["media-centarr/media-centarr","media-centaur/media-centaur"],"tags_count":201,"template":false,"template_full_name":null,"purl":"pkg:github/media-centaur/media-centaur","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/media-centaur%2Fmedia-centaur","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/media-centaur%2Fmedia-centaur/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/media-centaur%2Fmedia-centaur/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/media-centaur%2Fmedia-centaur/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/media-centaur","download_url":"https://codeload.github.com/media-centaur/media-centaur/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/media-centaur%2Fmedia-centaur/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33715214,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["broadway","elixir","jellyfin-alternative","linux","media-center","media-library","mpv","phoenix","phoenix-liveview","prowlarr","radarr-alternative","self-hosted","sonarr-alternative","sqlite","tmdb"],"created_at":"2026-05-23T23:02:21.568Z","updated_at":"2026-05-31T01:03:53.259Z","avatar_url":"https://github.com/media-centaur.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/media-centaur/media-centaur/main/priv/static/images/centaur-logo-light.png\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/media-centaur/media-centaur/main/priv/static/images/centaur-logo.png\" alt=\"Media Centaur\" width=\"220\"\u003e\n\u003c/picture\u003e\n\n# Media Centaur\n\n**Library management and playback for your personal movie and TV collection — the \\*ARR stack and a couch-ready player in one self-hosted Linux app.**\n\n![License: MIT](https://img.shields.io/badge/license-MIT-blue) ![Platform: Linux](https://img.shields.io/badge/platform-Linux-informational)\n\nPoint it at your video directories. It 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 that's fast at your desk and made for your couch.\n\nZero-config SQLite. No Docker. No transcoding server. No accounts. No cloud.\n\n**🌐 [Visit the site](https://media-centaur.github.io/media-centaur/) \u0026nbsp;·\u0026nbsp; 📖 [Read the docs](https://github.com/media-centaur/media-centaur/wiki)**\n\n\u003c/div\u003e\n\n\u003e [!NOTE]\n\u003e **Pre-1.0 and actively developed.** Functional for daily use; expect the occasional rough edge or breaking change between releases.\n\n\u003e [!NOTE]\n\u003e **UI overhaul in progress.** A complete pass over the visual design is shipping page by page. Every page is fully operational throughout — we're raising the bar on craft, not gating anything behind the rebuild.\n\u003e\n\u003e | Page              | Status        |\n\u003e | ----------------- | ------------- |\n\u003e | Home              | **Done**      |\n\u003e | Library           | **Done**      |\n\u003e | Release tracking  | In progress   |\n\u003e | Acquisition       | In progress   |\n\u003e | Dashboard         | In progress   |\n\u003e | Review            | In progress   |\n\u003e | Settings          | In progress   |\n\n\u003e [!IMPORTANT]\n\u003e **macOS support — experimental (Apple Silicon).** The Mac build now ships: the one-line installer works on Apple Silicon, autostart runs via launchd, and in-app updates work the same as on Linux. **Linux remains the fully-supported, primary platform.**\n\u003e\n\u003e Because we don't own Mac hardware, the macOS path is Linux-developer-tested only — so it's genuinely experimental and we need real-world reports. If you run it on macOS, please [open a `[macOS]` issue](https://github.com/media-centaur/media-centaur/issues/new?labels=macos) for anything that doesn't work. See the wiki's **[macOS](https://github.com/media-centaur/media-centaur/wiki/macOS)** page for install steps and the honest done/not-done list.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n\u003ca href=\"https://cdn.jsdelivr.net/gh/media-centaur/media-centaur-assets@main/screenshots/home.png\"\u003e\u003cimg src=\"docs-site/assets/screenshots/home.png\" alt=\"Home — cinematic landing page with Continue Watching, Recently Added, and Coming Up\" width=\"48%\"\u003e\u003c/a\u003e\n\u003ca href=\"https://cdn.jsdelivr.net/gh/media-centaur/media-centaur-assets@main/screenshots/library-grid.png\"\u003e\u003cimg src=\"docs-site/assets/screenshots/library-grid.png\" alt=\"Library grid\" width=\"48%\"\u003e\u003c/a\u003e\n\n\u003ca href=\"https://cdn.jsdelivr.net/gh/media-centaur/media-centaur-assets@main/screenshots/library-detail-movie.png\"\u003e\u003cimg src=\"docs-site/assets/screenshots/library-detail-movie.png\" alt=\"Movie detail\" width=\"48%\"\u003e\u003c/a\u003e\n\u003ca href=\"https://cdn.jsdelivr.net/gh/media-centaur/media-centaur-assets@main/screenshots/home-coming-up.png\"\u003e\u003cimg src=\"docs-site/assets/screenshots/home-coming-up.png\" alt=\"Coming Up — release cards with live grab-status badges\" width=\"48%\"\u003e\u003c/a\u003e\n\n\u003ca href=\"https://cdn.jsdelivr.net/gh/media-centaur/media-centaur-assets@main/screenshots/upcoming-calendar.png\"\u003e\u003cimg src=\"docs-site/assets/screenshots/upcoming-calendar.png\" alt=\"Upcoming — calendar of tracked releases plus active-shows panel\" width=\"48%\"\u003e\u003c/a\u003e\n\u003ca href=\"https://cdn.jsdelivr.net/gh/media-centaur/media-centaur-assets@main/screenshots/history-heatmap.png\"\u003e\u003cimg src=\"docs-site/assets/screenshots/history-heatmap.png\" alt=\"Watch history — stats and 52-week activity heatmap\" width=\"48%\"\u003e\u003c/a\u003e\n\n\u003ca href=\"https://cdn.jsdelivr.net/gh/media-centaur/media-centaur-assets@main/screenshots/download-activity.png\"\u003e\u003cimg src=\"docs-site/assets/screenshots/download-activity.png\" alt=\"Downloads — Activity tab showing the full grab lifecycle\" width=\"48%\"\u003e\u003c/a\u003e\n\n\u003c/div\u003e\n\n---\n\n## What it does\n\n- **Library management** — watches your directories for new video files, identifies movies and TV shows via TMDB, and downloads artwork automatically. Low-confidence matches wait for manual review instead of polluting your library with wrong guesses.\n- **Playback** — launches mpv on the local machine, tracks your progress, resumes where you left off, and auto-advances to the next episode.\n- **Release tracking** — monitors TMDB daily for upcoming movies and new TV seasons tied to the shows in your library.\n- **Acquisition** *(optional)* — search and queue downloads via Prowlarr. Entirely optional: Media Centaur is a full library manager without it.\n- **Couch-first UI** — keyboard *and* gamepad navigation, large artwork, dark-first. Built to drive a TV from across the room.\n- **Real-time** — every change (new file, metadata fetched, playback started) appears instantly via Phoenix LiveView. No polling, no refresh.\n\n## Non-goals\n\nMedia Centaur is deliberately **not** a streaming server or cross-platform media suite. It does not stream to remote devices, transcode, run in Docker, or support multiple users. If you need those, [Jellyfin](https://jellyfin.org/) and Plex do them well.\n\nSee the [FAQ](https://github.com/media-centaur/media-centaur/wiki/FAQ) for the full list and reasoning.\n\n---\n\n## Install\n\n```sh\ncurl -fsSL https://raw.githubusercontent.com/media-centaur/media-centaur/main/installer/install.sh | sh\n```\n\nDownloads the latest release, verifies its checksum, installs atomically under `~/.local/lib/media-centaur/`, generates a `SECRET_KEY_BASE`, and sets up a systemd user unit. **The installer is idempotent** — re-run it any time to reset to the latest stable build, recover from a half-applied update, or roll a wedged install forward. Your config, data, and cache live elsewhere and are preserved.\n\nAfter install, everyday updates happen inside the app: **Settings → System → Update now**.\n\nFull installation guide and recovery playbook: **[Wiki → Installation](https://github.com/media-centaur/media-centaur/wiki/Installation)** · **[Wiki → Troubleshooting](https://github.com/media-centaur/media-centaur/wiki/Troubleshooting#reset-by-re-running-the-installer)**.\n\n## Requirements\n\n- SQLite3, mpv, inotify-tools\n- A free [TMDB API key](https://www.themoviedb.org/settings/api)\n\n**Arch:** `sudo pacman -S sqlite mpv inotify-tools` \u0026nbsp;·\u0026nbsp; **Debian/Ubuntu:** `sudo apt install sqlite3 mpv inotify-tools`\n\n---\n\n## Documentation\n\nAll end-user documentation lives in the **[Wiki](https://github.com/media-centaur/media-centaur/wiki)**:\n\n- [Getting Started](https://github.com/media-centaur/media-centaur/wiki) — install, first run, add your library\n- [Using Media Centaur](https://github.com/media-centaur/media-centaur/wiki) — browsing, playback, keyboard \u0026 gamepad, review queue\n- [Setup Guides](https://github.com/media-centaur/media-centaur/wiki) — TMDB, Prowlarr, backup \u0026 restore, running as a service\n- [Reference](https://github.com/media-centaur/media-centaur/wiki) — settings, FAQ, troubleshooting\n\n---\n\n## For contributors\n\n```bash\ngit clone https://github.com/media-centaur/media-centaur.git\ncd media-centaur\nmix setup\nmix phx.server\n```\n\nArchitecture, pipeline internals, input system, and other developer documentation live in [`docs/`](docs/) and [`AGENTS.md`](AGENTS.md). Decision records are in [`decisions/`](decisions/).\n\n---\n\n## License\n\n[MIT](LICENSE) — Copyright (c) 2026 Shawn McCool\n\n## Acknowledgments\n\n\u003ca href=\"https://www.themoviedb.org\"\u003e\n  \u003cimg src=\"https://www.themoviedb.org/assets/2/v4/logos/v2/blue_short-8e7b30f73a4020692ccca9c88bafe5dcb6f8a62a4c6bc55cd9ba82bb2cd95f6c.svg\" alt=\"TMDB\" width=\"120\"\u003e\n\u003c/a\u003e\n\nThis product uses the TMDB API but is not endorsed or certified by TMDB.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmedia-centaur%2Fmedia-centaur","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmedia-centaur%2Fmedia-centaur","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmedia-centaur%2Fmedia-centaur/lists"}