{"adoption": {"forks": 30, "observed_at": "2026-08-28T04:04:12.843903+00:00", "stars": 1274}, "canonical_url": "https://ross.abutalabs.com/products/suggestarr", "card": {"archived": false, "artifact_type": "application", "description": "Effortlessly request recommended movies, TV shows and anime to Jellyseer/Overseer based on your recently watched content on Jellyfin, Plex or Emby—let SuggestArr handle it all automatically, keeping your library fresh with new and exciting content!", "domain": ["media", "self-hosted", "large-language-models"], "enriched": true, "function": ["workflow-automation", "llm-inference", "web-framework", "scheduling"], "health_score": 100, "homepage": "https://giuseppe99barchetta.github.io/SuggestArr/", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["giuseppe99barchetta/SuggestArr"], "name": "giuseppe99barchetta/SuggestArr", "platform": ["self-hosted", "python"], "pushed_at": "2026-08-24T10:36:08+00:00", "repo": "giuseppe99barchetta/SuggestArr", "stars": 1274, "tags": ["jellyfin", "plex", "emby", "jellyseerr", "overseerr", "tmdb", "trakt", "media-server", "recommendations", "media-requests", "automation", "docker", "linux", "web-server"], "topics": ["jellyfin", "jellyseerr", "self-hosted", "tmdb", "automation", "docker", "media-automation", "open-source", "emby", "ombi", "overseerr", "plex", "llm", "openai", "trakt"], "urls": [], "use_cases": ["automatically request recommended movies and shows to Jellyseerr based on what I watched on Jellyfin", "generate personalized media recommendations from my Plex watch history", "use an LLM to suggest what to watch next based on viewing history", "keep my media server library fresh with automated download requests", "search for what to watch in natural language and request it to Overseerr", "use Trakt watch history as seeds for media recommendations"], "what_it_is": "SuggestArr is a self-hosted web application that automatically recommends and requests movies, TV shows, and anime to Jellyseerr/Overseerr based on watch history from Jellyfin, Plex, or Emby. It uses the TMDb API for similar-title discovery and optionally OpenAI-compatible LLMs for personalized AI-powered recommendations and natural-language search.", "when_to_avoid": ["you don't use a media server or a Seer-style request manager", "you want a simple one-off recommendation list rather than an automated request pipeline", "you need a fully managed cloud service rather than a self-hosted Docker deployment"], "when_to_choose": ["you run a self-hosted Jellyfin, Plex, or Emby server with Jellyseerr/Overseerr and want automated content requests", "you want TMDb-based or LLM-personalized recommendations without manual searching", "you need multi-user support with approval workflows and cron scheduling"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/suggestarr", "repo": "giuseppe99barchetta/SuggestArr", "role": "main", "score": 89}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.843903+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T05:03:07.579598+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbedcd8d865d050da2919047114c8f0edf36d4097056d13f7a995adb1564380b", "fetched_at": "2026-08-28T04:04:12.843903+00:00", "kind": "readme", "missing": false, "url": "https://github.com/giuseppe99barchetta/SuggestArr"}, {"content_hash": "9ad8cfb46796f9ad8b9bc83e23df1949d0dee5cdd88483d3c3c9e8083bbc7367", "fetched_at": "2026-08-29T12:14:29.982585+00:00", "kind": "homepage", "missing": false, "url": "https://giuseppe99barchetta.github.io/SuggestArr/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.843903+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T05:03:07.579598+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbedcd8d865d050da2919047114c8f0edf36d4097056d13f7a995adb1564380b", "fetched_at": "2026-08-28T04:04:12.843903+00:00", "kind": "readme", "missing": false, "url": "https://github.com/giuseppe99barchetta/SuggestArr"}, {"content_hash": "9ad8cfb46796f9ad8b9bc83e23df1949d0dee5cdd88483d3c3c9e8083bbc7367", "fetched_at": "2026-08-29T12:14:29.982585+00:00", "kind": "homepage", "missing": false, "url": "https://giuseppe99barchetta.github.io/SuggestArr/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T05:03:07.579598+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbedcd8d865d050da2919047114c8f0edf36d4097056d13f7a995adb1564380b", "fetched_at": "2026-08-28T04:04:12.843903+00:00", "kind": "readme", "missing": false, "url": "https://github.com/giuseppe99barchetta/SuggestArr"}, {"content_hash": "9ad8cfb46796f9ad8b9bc83e23df1949d0dee5cdd88483d3c3c9e8083bbc7367", "fetched_at": "2026-08-29T12:14:29.982585+00:00", "kind": "homepage", "missing": false, "url": "https://giuseppe99barchetta.github.io/SuggestArr/"}], "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:12.843903+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.843903+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.843903+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T05:03:07.579598+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbedcd8d865d050da2919047114c8f0edf36d4097056d13f7a995adb1564380b", "fetched_at": "2026-08-28T04:04:12.843903+00:00", "kind": "readme", "missing": false, "url": "https://github.com/giuseppe99barchetta/SuggestArr"}, {"content_hash": "9ad8cfb46796f9ad8b9bc83e23df1949d0dee5cdd88483d3c3c9e8083bbc7367", "fetched_at": "2026-08-29T12:14:29.982585+00:00", "kind": "homepage", "missing": false, "url": "https://giuseppe99barchetta.github.io/SuggestArr/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.843903+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.843903+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T05:03:07.579598+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbedcd8d865d050da2919047114c8f0edf36d4097056d13f7a995adb1564380b", "fetched_at": "2026-08-28T04:04:12.843903+00:00", "kind": "readme", "missing": false, "url": "https://github.com/giuseppe99barchetta/SuggestArr"}, {"content_hash": "9ad8cfb46796f9ad8b9bc83e23df1949d0dee5cdd88483d3c3c9e8083bbc7367", "fetched_at": "2026-08-29T12:14:29.982585+00:00", "kind": "homepage", "missing": false, "url": "https://giuseppe99barchetta.github.io/SuggestArr/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.843903+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.843903+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.843903+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T05:03:07.579598+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbedcd8d865d050da2919047114c8f0edf36d4097056d13f7a995adb1564380b", "fetched_at": "2026-08-28T04:04:12.843903+00:00", "kind": "readme", "missing": false, "url": "https://github.com/giuseppe99barchetta/SuggestArr"}, {"content_hash": "9ad8cfb46796f9ad8b9bc83e23df1949d0dee5cdd88483d3c3c9e8083bbc7367", "fetched_at": "2026-08-29T12:14:29.982585+00:00", "kind": "homepage", "missing": false, "url": "https://giuseppe99barchetta.github.io/SuggestArr/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.843903+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:12.843903+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T05:03:07.579598+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbedcd8d865d050da2919047114c8f0edf36d4097056d13f7a995adb1564380b", "fetched_at": "2026-08-28T04:04:12.843903+00:00", "kind": "readme", "missing": false, "url": "https://github.com/giuseppe99barchetta/SuggestArr"}, {"content_hash": "9ad8cfb46796f9ad8b9bc83e23df1949d0dee5cdd88483d3c3c9e8083bbc7367", "fetched_at": "2026-08-29T12:14:29.982585+00:00", "kind": "homepage", "missing": false, "url": "https://giuseppe99barchetta.github.io/SuggestArr/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T05:03:07.579598+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbedcd8d865d050da2919047114c8f0edf36d4097056d13f7a995adb1564380b", "fetched_at": "2026-08-28T04:04:12.843903+00:00", "kind": "readme", "missing": false, "url": "https://github.com/giuseppe99barchetta/SuggestArr"}, {"content_hash": "9ad8cfb46796f9ad8b9bc83e23df1949d0dee5cdd88483d3c3c9e8083bbc7367", "fetched_at": "2026-08-29T12:14:29.982585+00:00", "kind": "homepage", "missing": false, "url": "https://giuseppe99barchetta.github.io/SuggestArr/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T05:03:07.579598+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbedcd8d865d050da2919047114c8f0edf36d4097056d13f7a995adb1564380b", "fetched_at": "2026-08-28T04:04:12.843903+00:00", "kind": "readme", "missing": false, "url": "https://github.com/giuseppe99barchetta/SuggestArr"}, {"content_hash": "9ad8cfb46796f9ad8b9bc83e23df1949d0dee5cdd88483d3c3c9e8083bbc7367", "fetched_at": "2026-08-29T12:14:29.982585+00:00", "kind": "homepage", "missing": false, "url": "https://giuseppe99barchetta.github.io/SuggestArr/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T05:03:07.579598+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbedcd8d865d050da2919047114c8f0edf36d4097056d13f7a995adb1564380b", "fetched_at": "2026-08-28T04:04:12.843903+00:00", "kind": "readme", "missing": false, "url": "https://github.com/giuseppe99barchetta/SuggestArr"}, {"content_hash": "9ad8cfb46796f9ad8b9bc83e23df1949d0dee5cdd88483d3c3c9e8083bbc7367", "fetched_at": "2026-08-29T12:14:29.982585+00:00", "kind": "homepage", "missing": false, "url": "https://giuseppe99barchetta.github.io/SuggestArr/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 49, "rhythm": 99}, "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": 688, "days_push": 9, "days_rel": 9, "gap_med": 2.0, "n_releases_24m": 39}, "score": 89, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}