{"adoption": {"forks": 286, "observed_at": "2026-08-28T04:06:01.866511+00:00", "stars": 1982}, "canonical_url": "https://ross.abutalabs.com/products/pymedusa-medusa", "card": {"archived": false, "artifact_type": "application", "description": "Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic.", "domain": ["media", "self-hosted", "web-development"], "enriched": true, "function": ["workflow-automation", "scheduling", "webhook", "search-engine", "file-system"], "health_score": 100, "homepage": null, "language": "Python", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["pymedusa/Medusa"], "name": "pymedusa/Medusa", "platform": ["python", "cross-platform", "self-hosted"], "pushed_at": "2026-08-26T17:35:32+00:00", "repo": "pymedusa/Medusa", "stars": 1982, "tags": ["pvr", "tv-shows", "usenet", "torrents", "video-library-manager", "plex", "kodi", "emby", "sickbeard-fork", "subtitles", "metadata", "automation", "docker", "web-server"], "topics": ["episodes", "medusa", "nzb", "mediainfo", "subtitle", "shows", "trakt", "metadata", "torrent", "tv", "series"], "urls": [], "use_cases": ["automatically download new tv show episodes", "manage and organize my tv series library", "search usenet and torrents for episodes automatically", "rename and add metadata to downloaded episodes", "download subtitles for tv shows automatically", "self-hosted pvr for plex kodi emby"], "what_it_is": "Medusa is a self-hosted, open-source PVR application that automatically manages TV show libraries. It monitors configured shows, searches Usenet and torrent providers, sends releases to download clients, and post-processes episodes with renaming, metadata, and subtitles.", "when_to_avoid": ["you need a movie manager rather than TV shows (use Radarr instead)", "you don't have external torrent/Usenet providers and a compatible download client", "you want a fully hands-off legal streaming service - Medusa provides no media itself"], "when_to_choose": ["you want automated, scheduled episode searching and backlog grabbing for TV shows", "you use torrent or Usenet download clients and want integration with Plex, Kodi, or Emby", "you want a self-hosted, actively maintained Sick Beard fork with rich provider and post-processing options"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pymedusa-medusa", "repo": "pymedusa/Medusa", "role": "main", "score": 90}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:01.866511+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:03:56.315383+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bac0c4bc4c4baa27884f61a9e127c9219222383363a0f0f60793a1eb6ec4b7e", "fetched_at": "2026-08-28T04:06:01.866511+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pymedusa/Medusa"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:01.866511+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:03:56.315383+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bac0c4bc4c4baa27884f61a9e127c9219222383363a0f0f60793a1eb6ec4b7e", "fetched_at": "2026-08-28T04:06:01.866511+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pymedusa/Medusa"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:03:56.315383+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bac0c4bc4c4baa27884f61a9e127c9219222383363a0f0f60793a1eb6ec4b7e", "fetched_at": "2026-08-28T04:06:01.866511+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pymedusa/Medusa"}], "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:06:01.866511+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:01.866511+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:01.866511+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:03:56.315383+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bac0c4bc4c4baa27884f61a9e127c9219222383363a0f0f60793a1eb6ec4b7e", "fetched_at": "2026-08-28T04:06:01.866511+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pymedusa/Medusa"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:01.866511+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:01.866511+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:03:56.315383+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bac0c4bc4c4baa27884f61a9e127c9219222383363a0f0f60793a1eb6ec4b7e", "fetched_at": "2026-08-28T04:06:01.866511+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pymedusa/Medusa"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:01.866511+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:01.866511+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:01.866511+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:03:56.315383+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bac0c4bc4c4baa27884f61a9e127c9219222383363a0f0f60793a1eb6ec4b7e", "fetched_at": "2026-08-28T04:06:01.866511+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pymedusa/Medusa"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:01.866511+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:01.866511+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:03:56.315383+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bac0c4bc4c4baa27884f61a9e127c9219222383363a0f0f60793a1eb6ec4b7e", "fetched_at": "2026-08-28T04:06:01.866511+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pymedusa/Medusa"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:03:56.315383+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bac0c4bc4c4baa27884f61a9e127c9219222383363a0f0f60793a1eb6ec4b7e", "fetched_at": "2026-08-28T04:06:01.866511+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pymedusa/Medusa"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:03:56.315383+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bac0c4bc4c4baa27884f61a9e127c9219222383363a0f0f60793a1eb6ec4b7e", "fetched_at": "2026-08-28T04:06:01.866511+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pymedusa/Medusa"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:03:56.315383+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bac0c4bc4c4baa27884f61a9e127c9219222383363a0f0f60793a1eb6ec4b7e", "fetched_at": "2026-08-28T04:06:01.866511+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pymedusa/Medusa"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 74}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3844, "days_push": 7, "days_rel": 12, "gap_med": 146.5, "n_releases_24m": 5}, "score": 90, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}