{"adoption": {"forks": 191, "observed_at": "2026-08-28T04:04:15.563356+00:00", "stars": 1291}, "canonical_url": "https://ross.abutalabs.com/products/python-plexapi", "card": {"archived": false, "artifact_type": "library", "description": "Python bindings for the Plex API.", "domain": ["media", "self-hosted"], "enriched": true, "function": ["sdk", "http-client"], "health_score": 98, "homepage": null, "language": "Python", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "active", "member_repos": ["pushingkarmaorg/python-plexapi"], "name": "pushingkarmaorg/python-plexapi", "platform": ["python"], "pushed_at": "2026-08-04T11:03:58+00:00", "repo": "pushingkarmaorg/python-plexapi", "stars": 1291, "tags": ["plex", "media-server", "api-client", "python-bindings", "media-library", "remote-control", "sonos", "notifications", "home-theater"], "topics": ["python", "plex", "api"], "urls": [], "use_cases": ["control my plex media server from python", "browse and search plex libraries programmatically", "automate plex library scans, analysis, and trash cleanup", "remote control plex playback on connected clients", "listen in on plex server notifications in a script", "build a python tool that manages a plex server via api"], "what_it_is": "An unofficial Python library providing bindings for the Plex API, aiming to match all capabilities of the official Plex Web Client. It supports authenticating via MyPlex or auth tokens, navigating Plex libraries, performing server maintenance, remote-controlling playback, and listening to server notifications.", "when_to_avoid": ["you need an official, fully supported Plex API with guaranteed coverage", "you are not working in Python or cannot use pip packages", "you need capabilities not yet implemented by these unofficial bindings"], "when_to_choose": ["you need to script or automate Plex server management in Python", "you are building an app that browses, searches, or curates Plex libraries", "you want to control playback on Plex clients, including Sonos speakers, from code", "you need to react to Plex server events through notifications"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/python-plexapi", "repo": "pushingkarmaorg/python-plexapi", "role": "main", "score": 91}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:15.563356+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:54:48.544707+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6879c33f3a68129c7ec72091d9cf961c11bfef413d11090f5474e9562c778752", "fetched_at": "2026-08-28T04:04:15.563356+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pushingkarmaorg/python-plexapi"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:15.563356+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:54:48.544707+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6879c33f3a68129c7ec72091d9cf961c11bfef413d11090f5474e9562c778752", "fetched_at": "2026-08-28T04:04:15.563356+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pushingkarmaorg/python-plexapi"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:54:48.544707+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6879c33f3a68129c7ec72091d9cf961c11bfef413d11090f5474e9562c778752", "fetched_at": "2026-08-28T04:04:15.563356+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pushingkarmaorg/python-plexapi"}], "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:04:15.563356+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:15.563356+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:15.563356+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:54:48.544707+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6879c33f3a68129c7ec72091d9cf961c11bfef413d11090f5474e9562c778752", "fetched_at": "2026-08-28T04:04:15.563356+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pushingkarmaorg/python-plexapi"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:15.563356+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:15.563356+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:54:48.544707+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6879c33f3a68129c7ec72091d9cf961c11bfef413d11090f5474e9562c778752", "fetched_at": "2026-08-28T04:04:15.563356+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pushingkarmaorg/python-plexapi"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:15.563356+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:15.563356+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:15.563356+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:54:48.544707+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6879c33f3a68129c7ec72091d9cf961c11bfef413d11090f5474e9562c778752", "fetched_at": "2026-08-28T04:04:15.563356+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pushingkarmaorg/python-plexapi"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:15.563356+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:15.563356+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:54:48.544707+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6879c33f3a68129c7ec72091d9cf961c11bfef413d11090f5474e9562c778752", "fetched_at": "2026-08-28T04:04:15.563356+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pushingkarmaorg/python-plexapi"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:54:48.544707+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6879c33f3a68129c7ec72091d9cf961c11bfef413d11090f5474e9562c778752", "fetched_at": "2026-08-28T04:04:15.563356+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pushingkarmaorg/python-plexapi"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:54:48.544707+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6879c33f3a68129c7ec72091d9cf961c11bfef413d11090f5474e9562c778752", "fetched_at": "2026-08-28T04:04:15.563356+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pushingkarmaorg/python-plexapi"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:54:48.544707+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6879c33f3a68129c7ec72091d9cf961c11bfef413d11090f5474e9562c778752", "fetched_at": "2026-08-28T04:04:15.563356+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pushingkarmaorg/python-plexapi"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 100, "rhythm": 80}, "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": 4266, "days_push": 29, "days_rel": 54, "gap_med": 84, "n_releases_24m": 8}, "score": 91, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}