{"adoption": {"forks": 206, "observed_at": "2026-08-28T04:04:54.376616+00:00", "stars": 1502}, "canonical_url": "https://ross.abutalabs.com/products/tonzhon-music", "card": {"archived": false, "artifact_type": "application", "description": "铜钟「Tonzhon」: 干净纯粹的音乐平台 (铜钟已不再使用原来的 tonzhon.com，现在的 tonzhon.com 不是正版的铜钟)", "domain": ["web-development", "media", "entertainment", "frontend"], "enriched": true, "function": ["web-framework", "search-engine", "audio-processing", "gui"], "health_score": 69, "homepage": "https://tonzhon.whamon.com", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["enzeberg/tonzhon-music"], "name": "enzeberg/tonzhon-music", "platform": ["cross-platform"], "pushed_at": "2026-05-08T15:59:15+00:00", "repo": "enzeberg/tonzhon-music", "stars": 1502, "tags": ["music-player", "music-streaming", "react", "antd", "lyrics", "playlists", "webapp", "ad-free", "web-server", "nodejs"], "topics": ["music", "music-player", "react", "react-router", "webapp", "antd", "tonzhon"], "urls": [], "use_cases": ["listen to music online without ads or social features", "search for songs and add them to a listening queue", "create and manage personal playlists", "discover and favorite playlists", "view scrolling lyrics while a song plays", "download lyrics for songs", "self-host a personal music streaming web app"], "what_it_is": "Tonzhon (铜钟) is a clean, ad-free web-based music player application built with React and Ant Design. It lets users search, play, and save songs, manage listening lists and playlists locally, and view or download scrolling lyrics.", "when_to_avoid": ["you need social features, comments, or live streaming", "you require offline native desktop or mobile apps", "you need a full music library manager for local audio files", "you depend on official licensing guarantees for streamed content"], "when_to_choose": ["you want a distraction-free, ad-free music listening web app", "you prefer playlists and listening lists stored locally", "you want a self-hostable open-source music player with a clean UI", "you need lyrics display and download alongside playback"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/tonzhon-music", "repo": "enzeberg/tonzhon-music", "role": "main", "score": 69}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.376616+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:32:53.006922+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1628c64e7a554da669a70df981093a574cadcd053672cd06f938e717f4865910", "fetched_at": "2026-08-28T04:04:54.376616+00:00", "kind": "readme", "missing": false, "url": "https://github.com/enzeberg/tonzhon-music"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.376616+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:32:53.006922+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1628c64e7a554da669a70df981093a574cadcd053672cd06f938e717f4865910", "fetched_at": "2026-08-28T04:04:54.376616+00:00", "kind": "readme", "missing": false, "url": "https://github.com/enzeberg/tonzhon-music"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:32:53.006922+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1628c64e7a554da669a70df981093a574cadcd053672cd06f938e717f4865910", "fetched_at": "2026-08-28T04:04:54.376616+00:00", "kind": "readme", "missing": false, "url": "https://github.com/enzeberg/tonzhon-music"}], "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:54.376616+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.376616+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.376616+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:32:53.006922+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1628c64e7a554da669a70df981093a574cadcd053672cd06f938e717f4865910", "fetched_at": "2026-08-28T04:04:54.376616+00:00", "kind": "readme", "missing": false, "url": "https://github.com/enzeberg/tonzhon-music"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.376616+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.376616+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:32:53.006922+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1628c64e7a554da669a70df981093a574cadcd053672cd06f938e717f4865910", "fetched_at": "2026-08-28T04:04:54.376616+00:00", "kind": "readme", "missing": false, "url": "https://github.com/enzeberg/tonzhon-music"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.376616+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.376616+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.376616+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:32:53.006922+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1628c64e7a554da669a70df981093a574cadcd053672cd06f938e717f4865910", "fetched_at": "2026-08-28T04:04:54.376616+00:00", "kind": "readme", "missing": false, "url": "https://github.com/enzeberg/tonzhon-music"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.376616+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.376616+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:32:53.006922+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1628c64e7a554da669a70df981093a574cadcd053672cd06f938e717f4865910", "fetched_at": "2026-08-28T04:04:54.376616+00:00", "kind": "readme", "missing": false, "url": "https://github.com/enzeberg/tonzhon-music"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:32:53.006922+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1628c64e7a554da669a70df981093a574cadcd053672cd06f938e717f4865910", "fetched_at": "2026-08-28T04:04:54.376616+00:00", "kind": "readme", "missing": false, "url": "https://github.com/enzeberg/tonzhon-music"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:32:53.006922+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1628c64e7a554da669a70df981093a574cadcd053672cd06f938e717f4865910", "fetched_at": "2026-08-28T04:04:54.376616+00:00", "kind": "readme", "missing": false, "url": "https://github.com/enzeberg/tonzhon-music"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:32:53.006922+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1628c64e7a554da669a70df981093a574cadcd053672cd06f938e717f4865910", "fetched_at": "2026-08-28T04:04:54.376616+00:00", "kind": "readme", "missing": false, "url": "https://github.com/enzeberg/tonzhon-music"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 81, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2990, "days_push": 117, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 69, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}