{"adoption": {"forks": 136, "observed_at": "2026-08-28T04:04:47.288542+00:00", "stars": 1459}, "canonical_url": "https://ross.abutalabs.com/products/dsomusic", "card": {"archived": true, "artifact_type": "application", "description": "Kotlin 开发的美观安卓音乐软件，音源：网易云音乐、QQ 音乐、酷我音乐、Bilibili", "domain": ["media", "android-tools", "entertainment"], "enriched": true, "function": ["audio-processing", "http-client", "gui"], "health_score": 10, "homepage": null, "language": "Kotlin", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "maintenance", "member_repos": ["Moriafly/DsoMusic"], "name": "Moriafly/DsoMusic", "platform": ["jvm"], "pushed_at": "2023-01-04T08:53:19+00:00", "repo": "Moriafly/DsoMusic", "stars": 1459, "tags": ["music-streaming", "jetpack-compose", "netease-cloud-music", "qq-music", "bilibili", "kuwo", "online-music-player", "gpl-3.0", "android"], "topics": ["kotlin", "android", "netease", "music"], "urls": [], "use_cases": ["stream music from netease and qq music on android", "listen to bilibili audio tracks in one app", "search songs across multiple chinese music sources", "view synced lyrics while streaming music", "get daily recommended songs and playlists", "play local music files on android"], "what_it_is": "Dso Music is a beautiful Android music streaming app written in Kotlin that aggregates online music sources including NetEase Cloud Music, QQ Music, Kuwo, and Bilibili. It supports online listening (no downloads), login, playlists, lyrics, daily recommendations, and local music playback.", "when_to_avoid": ["you need offline downloads or lossless audio", "you want a well-structured codebase to learn from - the author warns it is messy beginner code", "you need an actively maintained app - the last release was January 2023", "you need iOS or desktop support"], "when_to_choose": ["you want a free open-source android app aggregating multiple chinese music sources", "you want to study a kotlin android music app built with jetpack compose", "you need online streaming with lyrics and playlist features without downloads"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/dsomusic", "repo": "Moriafly/DsoMusic", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.288542+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:35:26.514496+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b1d4f1d0ac487e3ed05a9f018f2f582387763f742d2f616b09b83acf3f882a0e", "fetched_at": "2026-08-28T04:04:47.288542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Moriafly/DsoMusic"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.288542+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:35:26.514496+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b1d4f1d0ac487e3ed05a9f018f2f582387763f742d2f616b09b83acf3f882a0e", "fetched_at": "2026-08-28T04:04:47.288542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Moriafly/DsoMusic"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:35:26.514496+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b1d4f1d0ac487e3ed05a9f018f2f582387763f742d2f616b09b83acf3f882a0e", "fetched_at": "2026-08-28T04:04:47.288542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Moriafly/DsoMusic"}], "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:47.288542+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.288542+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.288542+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:35:26.514496+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b1d4f1d0ac487e3ed05a9f018f2f582387763f742d2f616b09b83acf3f882a0e", "fetched_at": "2026-08-28T04:04:47.288542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Moriafly/DsoMusic"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.288542+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.288542+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:35:26.514496+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b1d4f1d0ac487e3ed05a9f018f2f582387763f742d2f616b09b83acf3f882a0e", "fetched_at": "2026-08-28T04:04:47.288542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Moriafly/DsoMusic"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.288542+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.288542+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.288542+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:35:26.514496+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b1d4f1d0ac487e3ed05a9f018f2f582387763f742d2f616b09b83acf3f882a0e", "fetched_at": "2026-08-28T04:04:47.288542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Moriafly/DsoMusic"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.288542+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.288542+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:35:26.514496+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b1d4f1d0ac487e3ed05a9f018f2f582387763f742d2f616b09b83acf3f882a0e", "fetched_at": "2026-08-28T04:04:47.288542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Moriafly/DsoMusic"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:35:26.514496+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b1d4f1d0ac487e3ed05a9f018f2f582387763f742d2f616b09b83acf3f882a0e", "fetched_at": "2026-08-28T04:04:47.288542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Moriafly/DsoMusic"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:35:26.514496+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b1d4f1d0ac487e3ed05a9f018f2f582387763f742d2f616b09b83acf3f882a0e", "fetched_at": "2026-08-28T04:04:47.288542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Moriafly/DsoMusic"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:35:26.514496+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b1d4f1d0ac487e3ed05a9f018f2f582387763f742d2f616b09b83acf3f882a0e", "fetched_at": "2026-08-28T04:04:47.288542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Moriafly/DsoMusic"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2179, "days_push": 1337, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}