{"adoption": {"forks": 142, "observed_at": "2026-08-28T04:06:13.266756+00:00", "stars": 2096}, "canonical_url": "https://ross.abutalabs.com/products/app_rhyme", "card": {"archived": false, "artifact_type": "application", "description": "使用Flutter和Rust构建的开源免费音乐软件", "domain": ["media", "cross-platform", "entertainment"], "enriched": true, "function": ["audio-processing", "search-engine", "gui"], "health_score": 33, "homepage": null, "language": "Dart", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["canxin121/app_rhyme"], "name": "canxin121/app_rhyme", "platform": ["windows", "cross-platform"], "pushed_at": "2025-02-25T15:04:02+00:00", "repo": "canxin121/app_rhyme", "stars": 2096, "tags": ["music-player", "flutter", "rust", "custom-audio-source", "lyrics", "playlist", "offline-caching", "dark-mode", "android", "ios", "linux", "macos"], "topics": ["music", "music-player"], "urls": [], "use_cases": ["play music from my own custom audio source on Windows and Android", "search songs and playlists across music platforms", "display synced lyrics while listening to music", "cache songs for offline listening", "import playlists via links", "switch audio quality on wifi vs mobile data", "auto-fallback to alternate sources when a song fails to play"], "what_it_is": "AppRhyme is a free, open-source cross-platform music player built with Flutter and Rust that supports custom user-provided audio sources. It offers music search, playback, caching, lyrics display, and playlist management, with built-in metadata retrieval from public music platform databases.", "when_to_avoid": ["you expect built-in streaming from official music services - it provides no audio data itself", "you need a license-audited dependency - the repo shows no explicit license file", "you need macOS as a first-class target - it is lowest priority"], "when_to_choose": ["you want a free cross-platform music player with custom source support", "you need a Flutter+Rust reference app for desktop and mobile", "you want lyrics display, playlist import, and offline caching in one app"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/app_rhyme", "repo": "canxin121/app_rhyme", "role": "main", "score": 19}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.266756+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:54:35.574795+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5d2b102289323e336cb03d95b9244a997220e1b95fe226b6ff54a8e530d99fb", "fetched_at": "2026-08-28T04:06:13.266756+00:00", "kind": "readme", "missing": false, "url": "https://github.com/canxin121/app_rhyme"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.266756+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:54:35.574795+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5d2b102289323e336cb03d95b9244a997220e1b95fe226b6ff54a8e530d99fb", "fetched_at": "2026-08-28T04:06:13.266756+00:00", "kind": "readme", "missing": false, "url": "https://github.com/canxin121/app_rhyme"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:54:35.574795+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5d2b102289323e336cb03d95b9244a997220e1b95fe226b6ff54a8e530d99fb", "fetched_at": "2026-08-28T04:06:13.266756+00:00", "kind": "readme", "missing": false, "url": "https://github.com/canxin121/app_rhyme"}], "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:13.266756+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.266756+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.266756+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:54:35.574795+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5d2b102289323e336cb03d95b9244a997220e1b95fe226b6ff54a8e530d99fb", "fetched_at": "2026-08-28T04:06:13.266756+00:00", "kind": "readme", "missing": false, "url": "https://github.com/canxin121/app_rhyme"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.266756+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.266756+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:54:35.574795+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5d2b102289323e336cb03d95b9244a997220e1b95fe226b6ff54a8e530d99fb", "fetched_at": "2026-08-28T04:06:13.266756+00:00", "kind": "readme", "missing": false, "url": "https://github.com/canxin121/app_rhyme"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.266756+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.266756+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.266756+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:54:35.574795+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5d2b102289323e336cb03d95b9244a997220e1b95fe226b6ff54a8e530d99fb", "fetched_at": "2026-08-28T04:06:13.266756+00:00", "kind": "readme", "missing": false, "url": "https://github.com/canxin121/app_rhyme"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.266756+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.266756+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:54:35.574795+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5d2b102289323e336cb03d95b9244a997220e1b95fe226b6ff54a8e530d99fb", "fetched_at": "2026-08-28T04:06:13.266756+00:00", "kind": "readme", "missing": false, "url": "https://github.com/canxin121/app_rhyme"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:54:35.574795+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5d2b102289323e336cb03d95b9244a997220e1b95fe226b6ff54a8e530d99fb", "fetched_at": "2026-08-28T04:06:13.266756+00:00", "kind": "readme", "missing": false, "url": "https://github.com/canxin121/app_rhyme"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:54:35.574795+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5d2b102289323e336cb03d95b9244a997220e1b95fe226b6ff54a8e530d99fb", "fetched_at": "2026-08-28T04:06:13.266756+00:00", "kind": "readme", "missing": false, "url": "https://github.com/canxin121/app_rhyme"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:54:35.574795+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5d2b102289323e336cb03d95b9244a997220e1b95fe226b6ff54a8e530d99fb", "fetched_at": "2026-08-28T04:06:13.266756+00:00", "kind": "readme", "missing": false, "url": "https://github.com/canxin121/app_rhyme"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 8, "longevity": 61, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 855, "days_push": 554, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 19, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}