{"adoption": {"forks": 226, "observed_at": "2026-08-28T04:07:24.651701+00:00", "stars": 2838}, "canonical_url": "https://ross.abutalabs.com/products/cinetry", "card": {"archived": false, "artifact_type": "application", "description": "Cinetry多媒体播放器，Jellyfin、Emby、CMS、IPTV、Webdav、Alist、Openlist、Subsonic、Navidrom、GD音乐台、audiobookshelf、道理鱼、飞牛影视数据导入，服务器一键切换，多服务器数据聚合搜索，支持Andorid、iOS、Windows、macOS、Linux、TV，纯本地客户端，不扫库，不会收集、存储或传输任何个人信息或服务器数据", "domain": ["media", "entertainment", "self-hosted", "cross-platform"], "enriched": true, "function": ["gui", "video-processing", "audio-processing", "search-engine"], "health_score": 93, "homepage": "https://cinetry.gstory.cn", "language": null, "license": null, "license_family": "other", "maturity": "active", "member_repos": ["gstory0404/Cinetry"], "name": "gstory0404/Cinetry", "platform": ["windows", "cross-platform"], "pushed_at": "2026-06-26T13:50:41+00:00", "repo": "gstory0404/Cinetry", "stars": 2838, "tags": ["media-player", "jellyfin-client", "emby-client", "iptv", "webdav", "subsonic", "navidrome", "audiobookshelf", "tv", "media-server-aggregation", "local-first", "android", "ios", "macos", "linux", "desktop", "mobile"], "topics": ["cms", "emby", "jellyfin", "player-video", "tvbox", "iptv", "mpv", "webdav", "tv", "emby-client", "jellyfin-client", "navidrome", "navidrome-client", "subsonic", "subsonic-client", "webdav-client", "audiobookshelf"], "urls": [], "use_cases": ["play media from multiple jellyfin and emby servers in one app", "aggregate search across several media servers", "watch iptv and cms video sources on tv", "stream music from subsonic or navidrome", "play audiobooks from audiobookshelf", "access webdav and alist media without a server-side scan", "switch between media servers with one click"], "what_it_is": "Cinetry is a cross-platform, purely local media player client that aggregates content from user-configured media servers such as Jellyfin, Emby, CMS, IPTV, WebDAV, Alist, Subsonic, Navidrome, and audiobookshelf. It supports multi-server data import, aggregated search, and one-click server switching across Android, iOS, Windows, macOS, Linux, and TV.", "when_to_avoid": ["you need a media server that hosts or transcodes content itself", "you rely on official vendor clients with deep server feature integration", "you need a web/docker deployment (still in progress)"], "when_to_choose": ["you use multiple self-hosted media servers and want a single unified client", "you need one app across tv, mobile, and desktop platforms", "you want a privacy-focused client that only fetches displayed data and stores nothing"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/cinetry", "repo": "gstory0404/Cinetry", "role": "main", "score": 78}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.651701+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:37:28.946058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5ac3fb567477b3db5ce0fefc52d51570fc73aa1377c6212d2858631f4d18ec3", "fetched_at": "2026-08-28T04:07:24.651701+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gstory0404/Cinetry"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.651701+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:37:28.946058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5ac3fb567477b3db5ce0fefc52d51570fc73aa1377c6212d2858631f4d18ec3", "fetched_at": "2026-08-28T04:07:24.651701+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gstory0404/Cinetry"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:37:28.946058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5ac3fb567477b3db5ce0fefc52d51570fc73aa1377c6212d2858631f4d18ec3", "fetched_at": "2026-08-28T04:07:24.651701+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gstory0404/Cinetry"}], "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:07:24.651701+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.651701+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.651701+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:37:28.946058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5ac3fb567477b3db5ce0fefc52d51570fc73aa1377c6212d2858631f4d18ec3", "fetched_at": "2026-08-28T04:07:24.651701+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gstory0404/Cinetry"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.651701+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.651701+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:37:28.946058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5ac3fb567477b3db5ce0fefc52d51570fc73aa1377c6212d2858631f4d18ec3", "fetched_at": "2026-08-28T04:07:24.651701+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gstory0404/Cinetry"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.651701+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.651701+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.651701+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:37:28.946058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5ac3fb567477b3db5ce0fefc52d51570fc73aa1377c6212d2858631f4d18ec3", "fetched_at": "2026-08-28T04:07:24.651701+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gstory0404/Cinetry"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.651701+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.651701+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:37:28.946058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5ac3fb567477b3db5ce0fefc52d51570fc73aa1377c6212d2858631f4d18ec3", "fetched_at": "2026-08-28T04:07:24.651701+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gstory0404/Cinetry"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:37:28.946058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5ac3fb567477b3db5ce0fefc52d51570fc73aa1377c6212d2858631f4d18ec3", "fetched_at": "2026-08-28T04:07:24.651701+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gstory0404/Cinetry"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:37:28.946058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5ac3fb567477b3db5ce0fefc52d51570fc73aa1377c6212d2858631f4d18ec3", "fetched_at": "2026-08-28T04:07:24.651701+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gstory0404/Cinetry"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:37:28.946058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5ac3fb567477b3db5ce0fefc52d51570fc73aa1377c6212d2858631f4d18ec3", "fetched_at": "2026-08-28T04:07:24.651701+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gstory0404/Cinetry"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 89, "longevity": 32, "rhythm": 90}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 455, "days_push": 68, "days_rel": 68, "gap_med": 7, "n_releases_24m": 40}, "score": 78, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}