{"id":49037910,"url":"https://github.com/media-centarr/media-centarr","last_synced_at":"2026-05-20T23:07:40.465Z","repository":{"id":352025881,"uuid":"1161662398","full_name":"media-centarr/media-centarr","owner":"media-centarr","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-07T23:00:39.000Z","size":82075,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-08T01:03:02.924Z","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":"","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-centarr.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-07T23:00:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"6f981cc7-4f0f-4ac9-a452-62bd167c06e7","html_url":"https://github.com/media-centarr/media-centarr","commit_stats":null,"previous_names":["media-centarr/media-centarr"],"tags_count":116,"template":false,"template_full_name":null,"purl":"pkg:github/media-centarr/media-centarr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/media-centarr%2Fmedia-centarr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/media-centarr%2Fmedia-centarr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/media-centarr%2Fmedia-centarr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/media-centarr%2Fmedia-centarr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/media-centarr","download_url":"https://codeload.github.com/media-centarr/media-centarr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/media-centarr%2Fmedia-centarr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33034788,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"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-04-19T13:05:04.910Z","updated_at":"2026-05-14T17:02:06.186Z","avatar_url":"https://github.com/media-centarr.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-centarr/media-centarr/main/priv/static/images/centaur-logo-light.png\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/media-centarr/media-centarr/main/priv/static/images/centaur-logo.png\" alt=\"Media Centarr\" width=\"220\"\u003e\n\u003c/picture\u003e\n\n# Media Centarr\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![Status: Alpha](https://img.shields.io/badge/status-alpha-orange) ![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 designed for a TV across the room.\n\nZero-config SQLite. No Docker. No transcoding server. No accounts. No cloud.\n\n**🌐 [Visit the site](https://media-centarr.github.io/media-centarr/) \u0026nbsp;·\u0026nbsp; 📖 [Read the docs](https://github.com/media-centarr/media-centarr/wiki)**\n\n\u003c/div\u003e\n\n\u003e [!WARNING]\n\u003e **Alpha.** Functional for daily use but under active development. Expect rough edges and occasional breaking changes between releases.\n\n\u003e [!NOTE]\n\u003e **UI overhaul in progress (this week).** A complete pass over the visual design is shipping in small increments — every release this week is a noticeable step up for mouse-driven use, so updating now is worth it. Keyboard and gamepad navigation are paused while the UI settles and will resume next week; if you drive Media Centarr from the couch, hold off on updating, or update and accept that some focus rings and shortcut behaviour will be temporarily off.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n\u003ca href=\"https://cdn.jsdelivr.net/gh/media-centarr/media-centarr-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-centarr/media-centarr-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-centarr/media-centarr-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-centarr/media-centarr-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-centarr/media-centarr-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-centarr/media-centarr-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-centarr/media-centarr-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 Centarr 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 Centarr 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-centarr/media-centarr/wiki/FAQ) for the full list and reasoning.\n\n---\n\n## Install\n\n```sh\ncurl -fsSL https://raw.githubusercontent.com/media-centarr/media-centarr/main/installer/install.sh | sh\n```\n\nDownloads the latest release, verifies its checksum, installs atomically under `~/.local/lib/media-centarr/`, 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-centarr/media-centarr/wiki/Installation)** · **[Wiki → Troubleshooting](https://github.com/media-centarr/media-centarr/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-centarr/media-centarr/wiki)**:\n\n- [Getting Started](https://github.com/media-centarr/media-centarr/wiki) — install, first run, add your library\n- [Using Media Centarr](https://github.com/media-centarr/media-centarr/wiki) — browsing, playback, keyboard \u0026 gamepad, review queue\n- [Setup Guides](https://github.com/media-centarr/media-centarr/wiki) — TMDB, Prowlarr, backup \u0026 restore, running as a service\n- [Reference](https://github.com/media-centarr/media-centarr/wiki) — settings, FAQ, troubleshooting\n\n---\n\n## For contributors\n\n```bash\ngit clone https://github.com/media-centarr/media-centarr.git\ncd media-centarr\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-centarr%2Fmedia-centarr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmedia-centarr%2Fmedia-centarr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmedia-centarr%2Fmedia-centarr/lists"}