{"adoption": {"forks": 1469, "observed_at": "2026-08-28T04:10:49.250530+00:00", "stars": 11639}, "canonical_url": "https://ross.abutalabs.com/products/moviepilot", "card": {"archived": false, "artifact_type": "application", "description": "NAS媒体库自动化管理工具", "domain": ["media", "self-hosted", "web-development"], "enriched": true, "function": ["workflow-automation", "web-framework", "api-framework", "mcp", "agent-framework", "plugin-system", "search-engine", "scheduling", "webhook"], "health_score": 100, "homepage": "https://movie-pilot.org", "language": "Python", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["jxxghp/MoviePilot"], "name": "jxxghp/MoviePilot", "platform": ["windows", "self-hosted", "python"], "pushed_at": "2026-08-26T23:55:27+00:00", "repo": "jxxghp/MoviePilot", "stars": 11639, "tags": ["media-library", "nas", "plex", "jellyfin", "emby", "torrent-downloader", "media-server", "subscription-automation", "metadata-scraping", "fastapi", "vue3", "automation", "ai-agents", "docker", "linux", "web-server"], "topics": [], "urls": [], "use_cases": ["automatically download movies and tv shows to my nas", "organize and rename media library files automatically", "subscribe to new tv show episodes and download them when released", "scrape metadata and posters for my plex or jellyfin library", "manage media downloads via natural language ai agent", "self-hosted media automation alternative to sonarr and radarr", "notify me when downloads complete on my media server"], "what_it_is": "MoviePilot is a self-hosted NAS media library automation tool that handles subscribing, searching, downloading, organizing, scraping, and refreshing media libraries with notifications. It is built with a FastAPI backend and Vue 3 frontend, deployable via Docker, and includes AI agent and MCP integration for natural-language management.", "when_to_avoid": ["you only need a simple video player rather than library automation", "you cannot run Docker or a persistent server", "your use case involves commercial distribution rather than personal media management"], "when_to_choose": ["you run a NAS or home media server and want fully automated subscription-to-library workflows", "you want Docker deployment with plugin, workflow, and AI/MCP extensibility", "you use PT/private tracker sites and need integrated search, download, and organizing"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/moviepilot", "repo": "jxxghp/MoviePilot", "role": "main", "score": 92}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.250530+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:15:26.479421+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9b4512457e3678b5f407f773dd7eb7c169fa91fe28c972d29029607984969b01", "fetched_at": "2026-08-28T04:10:49.250530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jxxghp/MoviePilot"}, {"content_hash": "c01188b750f314074d649168166605f3959bf31c25785ce3dd98e193f0c3cf36", "fetched_at": "2026-08-29T08:13:44.418739+00:00", "kind": "homepage", "missing": false, "url": "https://movie-pilot.org"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.250530+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:15:26.479421+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9b4512457e3678b5f407f773dd7eb7c169fa91fe28c972d29029607984969b01", "fetched_at": "2026-08-28T04:10:49.250530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jxxghp/MoviePilot"}, {"content_hash": "c01188b750f314074d649168166605f3959bf31c25785ce3dd98e193f0c3cf36", "fetched_at": "2026-08-29T08:13:44.418739+00:00", "kind": "homepage", "missing": false, "url": "https://movie-pilot.org"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:15:26.479421+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9b4512457e3678b5f407f773dd7eb7c169fa91fe28c972d29029607984969b01", "fetched_at": "2026-08-28T04:10:49.250530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jxxghp/MoviePilot"}, {"content_hash": "c01188b750f314074d649168166605f3959bf31c25785ce3dd98e193f0c3cf36", "fetched_at": "2026-08-29T08:13:44.418739+00:00", "kind": "homepage", "missing": false, "url": "https://movie-pilot.org"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.250530+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.250530+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.250530+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:15:26.479421+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9b4512457e3678b5f407f773dd7eb7c169fa91fe28c972d29029607984969b01", "fetched_at": "2026-08-28T04:10:49.250530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jxxghp/MoviePilot"}, {"content_hash": "c01188b750f314074d649168166605f3959bf31c25785ce3dd98e193f0c3cf36", "fetched_at": "2026-08-29T08:13:44.418739+00:00", "kind": "homepage", "missing": false, "url": "https://movie-pilot.org"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.250530+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.250530+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:15:26.479421+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9b4512457e3678b5f407f773dd7eb7c169fa91fe28c972d29029607984969b01", "fetched_at": "2026-08-28T04:10:49.250530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jxxghp/MoviePilot"}, {"content_hash": "c01188b750f314074d649168166605f3959bf31c25785ce3dd98e193f0c3cf36", "fetched_at": "2026-08-29T08:13:44.418739+00:00", "kind": "homepage", "missing": false, "url": "https://movie-pilot.org"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.250530+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.250530+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.250530+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:15:26.479421+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9b4512457e3678b5f407f773dd7eb7c169fa91fe28c972d29029607984969b01", "fetched_at": "2026-08-28T04:10:49.250530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jxxghp/MoviePilot"}, {"content_hash": "c01188b750f314074d649168166605f3959bf31c25785ce3dd98e193f0c3cf36", "fetched_at": "2026-08-29T08:13:44.418739+00:00", "kind": "homepage", "missing": false, "url": "https://movie-pilot.org"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.250530+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.250530+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:15:26.479421+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9b4512457e3678b5f407f773dd7eb7c169fa91fe28c972d29029607984969b01", "fetched_at": "2026-08-28T04:10:49.250530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jxxghp/MoviePilot"}, {"content_hash": "c01188b750f314074d649168166605f3959bf31c25785ce3dd98e193f0c3cf36", "fetched_at": "2026-08-29T08:13:44.418739+00:00", "kind": "homepage", "missing": false, "url": "https://movie-pilot.org"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:15:26.479421+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9b4512457e3678b5f407f773dd7eb7c169fa91fe28c972d29029607984969b01", "fetched_at": "2026-08-28T04:10:49.250530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jxxghp/MoviePilot"}, {"content_hash": "c01188b750f314074d649168166605f3959bf31c25785ce3dd98e193f0c3cf36", "fetched_at": "2026-08-29T08:13:44.418739+00:00", "kind": "homepage", "missing": false, "url": "https://movie-pilot.org"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:15:26.479421+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9b4512457e3678b5f407f773dd7eb7c169fa91fe28c972d29029607984969b01", "fetched_at": "2026-08-28T04:10:49.250530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jxxghp/MoviePilot"}, {"content_hash": "c01188b750f314074d649168166605f3959bf31c25785ce3dd98e193f0c3cf36", "fetched_at": "2026-08-29T08:13:44.418739+00:00", "kind": "homepage", "missing": false, "url": "https://movie-pilot.org"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:15:26.479421+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9b4512457e3678b5f407f773dd7eb7c169fa91fe28c972d29029607984969b01", "fetched_at": "2026-08-28T04:10:49.250530+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jxxghp/MoviePilot"}, {"content_hash": "c01188b750f314074d649168166605f3959bf31c25785ce3dd98e193f0c3cf36", "fetched_at": "2026-08-29T08:13:44.418739+00:00", "kind": "homepage", "missing": false, "url": "https://movie-pilot.org"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 85, "rhythm": 87}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1191, "days_push": 7, "days_rel": 7, "gap_med": 2.0, "n_releases_24m": 215}, "score": 92, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}