{"adoption": {"forks": 279, "observed_at": "2026-08-28T04:06:59.545306+00:00", "stars": 2544}, "canonical_url": "https://ross.abutalabs.com/products/owntone-server", "card": {"archived": false, "artifact_type": "application", "description": "Audio server that can play to AirPlay 1+2 speakers (multiroom), Chromecast and locally. Supports Spotify, internet radio and many file formats. Also MPD server, iTunes DAAP, smart playlists, Apple Remote and much more.", "domain": ["media", "self-hosted", "web-development"], "enriched": true, "function": ["http-server", "streaming", "web-scraping"], "health_score": 100, "homepage": "https://owntone.github.io/owntone-server", "language": "C", "license": "GPL-2.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["owntone/owntone-server"], "name": "owntone/owntone-server", "platform": ["bsd", "self-hosted"], "pushed_at": "2026-08-25T19:24:30+00:00", "repo": "owntone/owntone-server", "stars": 2544, "tags": ["audio-streaming", "airplay", "chromecast", "daap", "mpd-server", "spotify", "internet-radio", "multiroom", "media-server", "raspberry-pi", "audio", "linux", "macos", "web-server"], "topics": ["apple-remote", "itunes", "spotify", "mpd", "airplay", "daap", "chromecast-audio", "c", "internet-radio", "daapd", "airplay2"], "urls": [], "use_cases": ["stream music to AirPlay speakers in sync across multiple rooms", "play Spotify through Chromecast and AirPlay devices", "share my local music library with iTunes or Apple Music via DAAP", "run a self-hosted MPD server on a Raspberry Pi", "listen to internet radio stations through my home speakers", "control my home audio server from Apple Remote or an Android app", "serve podcasts and audiobooks to a web browser player"], "what_it_is": "OwnTone is an open-source audio media server written in C that streams local files, Spotify, and internet radio to AirPlay 1/2 (multiroom), Chromecast, and local outputs. It also acts as an MPD server, serves DAAP/RSP to iTunes-compatible clients, and is controlled via a web interface, Apple Remote, MPD clients, or a JSON API.", "when_to_avoid": ["you need video or photo serving, not just audio", "you want a turnkey GUI desktop media player rather than a headless server", "you rely on free (non-premium) Spotify accounts, which are not supported", "you need a solution for Windows servers, since it targets Linux, BSD and macOS"], "when_to_choose": ["you want a lightweight, low-power (e.g. Raspberry Pi) multiroom audio server", "you need AirPlay 1/2 and Chromecast streaming from one server", "you use iTunes/Apple Music or MPD clients and want to share a local library", "you prefer self-hosting your music streaming instead of a cloud service"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/owntone-server", "repo": "owntone/owntone-server", "role": "main", "score": 93}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:59.545306+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:25:04.689100+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f4664cc230d2b8225872ae43cde34aa209691e5cb2eb9eafe5deea3d2ffdd1e4", "fetched_at": "2026-08-28T04:06:59.545306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/owntone/owntone-server"}, {"content_hash": "a852027cea3351fd66a7b7a890d68f840573ac3c25ac1559967fda45935bd5db", "fetched_at": "2026-08-29T10:06:59.705751+00:00", "kind": "homepage", "missing": false, "url": "https://owntone.github.io/owntone-server"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:59.545306+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:25:04.689100+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f4664cc230d2b8225872ae43cde34aa209691e5cb2eb9eafe5deea3d2ffdd1e4", "fetched_at": "2026-08-28T04:06:59.545306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/owntone/owntone-server"}, {"content_hash": "a852027cea3351fd66a7b7a890d68f840573ac3c25ac1559967fda45935bd5db", "fetched_at": "2026-08-29T10:06:59.705751+00:00", "kind": "homepage", "missing": false, "url": "https://owntone.github.io/owntone-server"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:25:04.689100+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f4664cc230d2b8225872ae43cde34aa209691e5cb2eb9eafe5deea3d2ffdd1e4", "fetched_at": "2026-08-28T04:06:59.545306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/owntone/owntone-server"}, {"content_hash": "a852027cea3351fd66a7b7a890d68f840573ac3c25ac1559967fda45935bd5db", "fetched_at": "2026-08-29T10:06:59.705751+00:00", "kind": "homepage", "missing": false, "url": "https://owntone.github.io/owntone-server"}], "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:59.545306+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:59.545306+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:59.545306+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:25:04.689100+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f4664cc230d2b8225872ae43cde34aa209691e5cb2eb9eafe5deea3d2ffdd1e4", "fetched_at": "2026-08-28T04:06:59.545306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/owntone/owntone-server"}, {"content_hash": "a852027cea3351fd66a7b7a890d68f840573ac3c25ac1559967fda45935bd5db", "fetched_at": "2026-08-29T10:06:59.705751+00:00", "kind": "homepage", "missing": false, "url": "https://owntone.github.io/owntone-server"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:59.545306+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:59.545306+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:25:04.689100+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f4664cc230d2b8225872ae43cde34aa209691e5cb2eb9eafe5deea3d2ffdd1e4", "fetched_at": "2026-08-28T04:06:59.545306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/owntone/owntone-server"}, {"content_hash": "a852027cea3351fd66a7b7a890d68f840573ac3c25ac1559967fda45935bd5db", "fetched_at": "2026-08-29T10:06:59.705751+00:00", "kind": "homepage", "missing": false, "url": "https://owntone.github.io/owntone-server"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:59.545306+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:59.545306+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:59.545306+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:25:04.689100+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f4664cc230d2b8225872ae43cde34aa209691e5cb2eb9eafe5deea3d2ffdd1e4", "fetched_at": "2026-08-28T04:06:59.545306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/owntone/owntone-server"}, {"content_hash": "a852027cea3351fd66a7b7a890d68f840573ac3c25ac1559967fda45935bd5db", "fetched_at": "2026-08-29T10:06:59.705751+00:00", "kind": "homepage", "missing": false, "url": "https://owntone.github.io/owntone-server"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:59.545306+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:59.545306+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:25:04.689100+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f4664cc230d2b8225872ae43cde34aa209691e5cb2eb9eafe5deea3d2ffdd1e4", "fetched_at": "2026-08-28T04:06:59.545306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/owntone/owntone-server"}, {"content_hash": "a852027cea3351fd66a7b7a890d68f840573ac3c25ac1559967fda45935bd5db", "fetched_at": "2026-08-29T10:06:59.705751+00:00", "kind": "homepage", "missing": false, "url": "https://owntone.github.io/owntone-server"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:25:04.689100+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f4664cc230d2b8225872ae43cde34aa209691e5cb2eb9eafe5deea3d2ffdd1e4", "fetched_at": "2026-08-28T04:06:59.545306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/owntone/owntone-server"}, {"content_hash": "a852027cea3351fd66a7b7a890d68f840573ac3c25ac1559967fda45935bd5db", "fetched_at": "2026-08-29T10:06:59.705751+00:00", "kind": "homepage", "missing": false, "url": "https://owntone.github.io/owntone-server"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:25:04.689100+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f4664cc230d2b8225872ae43cde34aa209691e5cb2eb9eafe5deea3d2ffdd1e4", "fetched_at": "2026-08-28T04:06:59.545306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/owntone/owntone-server"}, {"content_hash": "a852027cea3351fd66a7b7a890d68f840573ac3c25ac1559967fda45935bd5db", "fetched_at": "2026-08-29T10:06:59.705751+00:00", "kind": "homepage", "missing": false, "url": "https://owntone.github.io/owntone-server"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:25:04.689100+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f4664cc230d2b8225872ae43cde34aa209691e5cb2eb9eafe5deea3d2ffdd1e4", "fetched_at": "2026-08-28T04:06:59.545306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/owntone/owntone-server"}, {"content_hash": "a852027cea3351fd66a7b7a890d68f840573ac3c25ac1559967fda45935bd5db", "fetched_at": "2026-08-29T10:06:59.705751+00:00", "kind": "homepage", "missing": false, "url": "https://owntone.github.io/owntone-server"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 82}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4849, "days_push": 8, "days_rel": 42, "gap_med": 85, "n_releases_24m": 8}, "score": 93, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}