{"adoption": {"forks": 1196, "observed_at": "2026-08-28T04:09:59.784861+00:00", "stars": 7422}, "canonical_url": "https://ross.abutalabs.com/products/splayer", "card": {"archived": true, "artifact_type": "application", "description": "🎵 A cross-platform music player with Jellyfin / Navidrome / Emby media server support, word-by-word lyrics, desktop & taskbar lyrics, cloud music drive, local library management, audio spectrum visualization and mobile-friendly UI. 简约的跨平台音乐播放器，支持逐字歌词、桌面歌词、任务栏歌词、云盘音乐、本地音乐管理及流媒体播放", "domain": ["media", "cross-platform", "self-hosted"], "enriched": true, "function": ["audio-processing", "gui", "http-client", "self-hosted"], "health_score": 10, "homepage": "http://splayer.imsyy.top/", "language": "TypeScript", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "maintenance", "member_repos": ["SPlayer-Dev/SPlayer"], "name": "SPlayer-Dev/SPlayer", "platform": ["windows", "cross-platform"], "pushed_at": "2026-06-10T03:56:42+00:00", "repo": "SPlayer-Dev/SPlayer", "stars": 7422, "tags": ["music-player", "jellyfin", "navidrome", "emby", "subsonic", "lyrics", "desktop-lyrics", "vue3", "netease-cloud-music", "streaming-audio", "audio", "electron", "web-server", "docker"], "topics": ["music", "music-player", "pinia", "vite", "vue", "splayer", "music-library", "javascript", "vue3", "musicplayer", "jellyfin", "navidrome", "opensubsonic", "streaming", "emby", "cross-platform", "media-server"], "urls": [], "use_cases": ["play music from my Jellyfin or Navidrome media server", "show word-by-word synced lyrics on my desktop", "manage and play my local music library with tag editing", "stream songs from a cloud music drive", "visualize an audio spectrum while listening to music", "scrobble my plays to Last.fm", "use a lightweight music player with dark mode and theme colors"], "what_it_is": "SPlayer is a cross-platform music player built with Vue 3, TypeScript, and Electron that supports streaming from media servers like Jellyfin, Navidrome, and Emby, plus local library management and cloud music drives. It features word-by-word lyrics, desktop and taskbar lyrics, audio spectrum visualization, and a mobile-friendly UI.", "when_to_avoid": ["you need active new feature development, since this repo is in maintenance mode (see SPlayer-Next)", "you require guaranteed support on macOS or Linux, as only Windows is officially well-tested", "you want a commercial product without AGPL-3.0 obligations"], "when_to_choose": ["you want a self-hosted-friendly music player that connects to Subsonic/Navidrome/Jellyfin/Emby servers", "you need desktop lyrics with word-by-word timing and translation", "you want local music management plus cloud drive playback in one app", "you prefer a Vue 3/Electron app you can deploy via Docker or Vercel"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/splayer", "repo": "SPlayer-Dev/SPlayer", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:59.784861+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:37:45.512820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca94e012ff33351c5b09bd7f985abf03a4ebc8aeb0daafddbcf1e5642226c991", "fetched_at": "2026-08-28T04:09:59.784861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SPlayer-Dev/SPlayer"}, {"content_hash": "f62c04fe3338f4da61bec6376c8db888624ce5c9ce08e63f9a8edfbba83726c4", "fetched_at": "2026-08-29T08:33:27.681028+00:00", "kind": "homepage", "missing": false, "url": "http://splayer.imsyy.top/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:59.784861+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:37:45.512820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca94e012ff33351c5b09bd7f985abf03a4ebc8aeb0daafddbcf1e5642226c991", "fetched_at": "2026-08-28T04:09:59.784861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SPlayer-Dev/SPlayer"}, {"content_hash": "f62c04fe3338f4da61bec6376c8db888624ce5c9ce08e63f9a8edfbba83726c4", "fetched_at": "2026-08-29T08:33:27.681028+00:00", "kind": "homepage", "missing": false, "url": "http://splayer.imsyy.top/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:37:45.512820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca94e012ff33351c5b09bd7f985abf03a4ebc8aeb0daafddbcf1e5642226c991", "fetched_at": "2026-08-28T04:09:59.784861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SPlayer-Dev/SPlayer"}, {"content_hash": "f62c04fe3338f4da61bec6376c8db888624ce5c9ce08e63f9a8edfbba83726c4", "fetched_at": "2026-08-29T08:33:27.681028+00:00", "kind": "homepage", "missing": false, "url": "http://splayer.imsyy.top/"}], "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:09:59.784861+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:59.784861+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:59.784861+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:37:45.512820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca94e012ff33351c5b09bd7f985abf03a4ebc8aeb0daafddbcf1e5642226c991", "fetched_at": "2026-08-28T04:09:59.784861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SPlayer-Dev/SPlayer"}, {"content_hash": "f62c04fe3338f4da61bec6376c8db888624ce5c9ce08e63f9a8edfbba83726c4", "fetched_at": "2026-08-29T08:33:27.681028+00:00", "kind": "homepage", "missing": false, "url": "http://splayer.imsyy.top/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:59.784861+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:59.784861+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:37:45.512820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca94e012ff33351c5b09bd7f985abf03a4ebc8aeb0daafddbcf1e5642226c991", "fetched_at": "2026-08-28T04:09:59.784861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SPlayer-Dev/SPlayer"}, {"content_hash": "f62c04fe3338f4da61bec6376c8db888624ce5c9ce08e63f9a8edfbba83726c4", "fetched_at": "2026-08-29T08:33:27.681028+00:00", "kind": "homepage", "missing": false, "url": "http://splayer.imsyy.top/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:59.784861+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:59.784861+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:59.784861+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:37:45.512820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca94e012ff33351c5b09bd7f985abf03a4ebc8aeb0daafddbcf1e5642226c991", "fetched_at": "2026-08-28T04:09:59.784861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SPlayer-Dev/SPlayer"}, {"content_hash": "f62c04fe3338f4da61bec6376c8db888624ce5c9ce08e63f9a8edfbba83726c4", "fetched_at": "2026-08-29T08:33:27.681028+00:00", "kind": "homepage", "missing": false, "url": "http://splayer.imsyy.top/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:59.784861+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:59.784861+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:37:45.512820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca94e012ff33351c5b09bd7f985abf03a4ebc8aeb0daafddbcf1e5642226c991", "fetched_at": "2026-08-28T04:09:59.784861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SPlayer-Dev/SPlayer"}, {"content_hash": "f62c04fe3338f4da61bec6376c8db888624ce5c9ce08e63f9a8edfbba83726c4", "fetched_at": "2026-08-29T08:33:27.681028+00:00", "kind": "homepage", "missing": false, "url": "http://splayer.imsyy.top/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:37:45.512820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca94e012ff33351c5b09bd7f985abf03a4ebc8aeb0daafddbcf1e5642226c991", "fetched_at": "2026-08-28T04:09:59.784861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SPlayer-Dev/SPlayer"}, {"content_hash": "f62c04fe3338f4da61bec6376c8db888624ce5c9ce08e63f9a8edfbba83726c4", "fetched_at": "2026-08-29T08:33:27.681028+00:00", "kind": "homepage", "missing": false, "url": "http://splayer.imsyy.top/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:37:45.512820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca94e012ff33351c5b09bd7f985abf03a4ebc8aeb0daafddbcf1e5642226c991", "fetched_at": "2026-08-28T04:09:59.784861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SPlayer-Dev/SPlayer"}, {"content_hash": "f62c04fe3338f4da61bec6376c8db888624ce5c9ce08e63f9a8edfbba83726c4", "fetched_at": "2026-08-29T08:33:27.681028+00:00", "kind": "homepage", "missing": false, "url": "http://splayer.imsyy.top/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:37:45.512820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca94e012ff33351c5b09bd7f985abf03a4ebc8aeb0daafddbcf1e5642226c991", "fetched_at": "2026-08-28T04:09:59.784861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SPlayer-Dev/SPlayer"}, {"content_hash": "f62c04fe3338f4da61bec6376c8db888624ce5c9ce08e63f9a8edfbba83726c4", "fetched_at": "2026-08-29T08:33:27.681028+00:00", "kind": "homepage", "missing": false, "url": "http://splayer.imsyy.top/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 86, "longevity": 95, "rhythm": 87}, "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": 1335, "days_push": 84, "days_rel": 89, "gap_med": 23, "n_releases_24m": 12}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}