{"adoption": {"forks": 475, "observed_at": "2026-08-28T04:05:59.239800+00:00", "stars": 1958}, "canonical_url": "https://ross.abutalabs.com/products/node-sonos-http-api", "card": {"archived": false, "artifact_type": "service", "description": "An HTTP API bridge for Sonos easing automation. Hostable on any node.js capable device, like a raspberry pi or similar.", "domain": ["iot", "self-hosted"], "enriched": true, "function": ["http-server", "api-framework", "webhook"], "health_score": 28, "homepage": "http://jishi.github.io/node-sonos-http-api/", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["jishi/node-sonos-http-api"], "name": "jishi/node-sonos-http-api", "platform": ["self-hosted", "iot"], "pushed_at": "2025-03-22T11:45:06+00:00", "repo": "jishi/node-sonos-http-api", "stars": 1958, "tags": ["sonos", "http-api", "home-automation", "upnp", "music-control", "automation", "audio", "nodejs", "linux"], "topics": ["sonos", "nodejs"], "urls": [], "use_cases": ["control sonos speakers via http requests", "integrate sonos with home automation like home assistant", "pause all sonos zones at night with a webhook", "set volume on a sonos room from a script", "play a favorite playlist on sonos via curl", "run a sonos control api on a raspberry pi"], "what_it_is": "A Node.js HTTP API bridge for controlling Sonos speakers, exposing simple REST-style endpoints for play, pause, volume, grouping, and presets. It can be hosted on any Node-capable device such as a Raspberry Pi to enable home automation integrations.", "when_to_avoid": ["you need a guaranteed long-term API since Sonos may drop UPnP support", "you want a polished GUI for controlling Sonos", "you need cloud-based control such as IFTTT integration"], "when_to_choose": ["you want simple HTTP endpoints to automate Sonos playback", "you run a self-hosted automation hub like Home Assistant or Node-RED", "you need presets, sleep timers, and multi-room volume control from scripts"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/node-sonos-http-api", "repo": "jishi/node-sonos-http-api", "role": "main", "score": 28}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:59.239800+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:05:59.815959+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "27337f97bb56b5f40f7cc53c6ca33f9912e47221fe7c14936f95d5707aa874d5", "fetched_at": "2026-08-28T04:05:59.239800+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jishi/node-sonos-http-api"}, {"content_hash": "c019ae35e9e50be1387a40ba8e8804b9653cca6307f559adc650b77886fcceed", "fetched_at": "2026-08-29T10:46:07.725363+00:00", "kind": "homepage", "missing": false, "url": "http://jishi.github.io/node-sonos-http-api/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:59.239800+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:05:59.815959+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "27337f97bb56b5f40f7cc53c6ca33f9912e47221fe7c14936f95d5707aa874d5", "fetched_at": "2026-08-28T04:05:59.239800+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jishi/node-sonos-http-api"}, {"content_hash": "c019ae35e9e50be1387a40ba8e8804b9653cca6307f559adc650b77886fcceed", "fetched_at": "2026-08-29T10:46:07.725363+00:00", "kind": "homepage", "missing": false, "url": "http://jishi.github.io/node-sonos-http-api/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:05:59.815959+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "27337f97bb56b5f40f7cc53c6ca33f9912e47221fe7c14936f95d5707aa874d5", "fetched_at": "2026-08-28T04:05:59.239800+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jishi/node-sonos-http-api"}, {"content_hash": "c019ae35e9e50be1387a40ba8e8804b9653cca6307f559adc650b77886fcceed", "fetched_at": "2026-08-29T10:46:07.725363+00:00", "kind": "homepage", "missing": false, "url": "http://jishi.github.io/node-sonos-http-api/"}], "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:05:59.239800+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:59.239800+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:59.239800+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:05:59.815959+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "27337f97bb56b5f40f7cc53c6ca33f9912e47221fe7c14936f95d5707aa874d5", "fetched_at": "2026-08-28T04:05:59.239800+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jishi/node-sonos-http-api"}, {"content_hash": "c019ae35e9e50be1387a40ba8e8804b9653cca6307f559adc650b77886fcceed", "fetched_at": "2026-08-29T10:46:07.725363+00:00", "kind": "homepage", "missing": false, "url": "http://jishi.github.io/node-sonos-http-api/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:59.239800+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:59.239800+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:05:59.815959+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "27337f97bb56b5f40f7cc53c6ca33f9912e47221fe7c14936f95d5707aa874d5", "fetched_at": "2026-08-28T04:05:59.239800+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jishi/node-sonos-http-api"}, {"content_hash": "c019ae35e9e50be1387a40ba8e8804b9653cca6307f559adc650b77886fcceed", "fetched_at": "2026-08-29T10:46:07.725363+00:00", "kind": "homepage", "missing": false, "url": "http://jishi.github.io/node-sonos-http-api/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:59.239800+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:59.239800+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:59.239800+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:05:59.815959+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "27337f97bb56b5f40f7cc53c6ca33f9912e47221fe7c14936f95d5707aa874d5", "fetched_at": "2026-08-28T04:05:59.239800+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jishi/node-sonos-http-api"}, {"content_hash": "c019ae35e9e50be1387a40ba8e8804b9653cca6307f559adc650b77886fcceed", "fetched_at": "2026-08-29T10:46:07.725363+00:00", "kind": "homepage", "missing": false, "url": "http://jishi.github.io/node-sonos-http-api/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:59.239800+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:59.239800+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:05:59.815959+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "27337f97bb56b5f40f7cc53c6ca33f9912e47221fe7c14936f95d5707aa874d5", "fetched_at": "2026-08-28T04:05:59.239800+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jishi/node-sonos-http-api"}, {"content_hash": "c019ae35e9e50be1387a40ba8e8804b9653cca6307f559adc650b77886fcceed", "fetched_at": "2026-08-29T10:46:07.725363+00:00", "kind": "homepage", "missing": false, "url": "http://jishi.github.io/node-sonos-http-api/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:05:59.815959+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "27337f97bb56b5f40f7cc53c6ca33f9912e47221fe7c14936f95d5707aa874d5", "fetched_at": "2026-08-28T04:05:59.239800+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jishi/node-sonos-http-api"}, {"content_hash": "c019ae35e9e50be1387a40ba8e8804b9653cca6307f559adc650b77886fcceed", "fetched_at": "2026-08-29T10:46:07.725363+00:00", "kind": "homepage", "missing": false, "url": "http://jishi.github.io/node-sonos-http-api/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:05:59.815959+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "27337f97bb56b5f40f7cc53c6ca33f9912e47221fe7c14936f95d5707aa874d5", "fetched_at": "2026-08-28T04:05:59.239800+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jishi/node-sonos-http-api"}, {"content_hash": "c019ae35e9e50be1387a40ba8e8804b9653cca6307f559adc650b77886fcceed", "fetched_at": "2026-08-29T10:46:07.725363+00:00", "kind": "homepage", "missing": false, "url": "http://jishi.github.io/node-sonos-http-api/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:05:59.815959+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "27337f97bb56b5f40f7cc53c6ca33f9912e47221fe7c14936f95d5707aa874d5", "fetched_at": "2026-08-28T04:05:59.239800+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jishi/node-sonos-http-api"}, {"content_hash": "c019ae35e9e50be1387a40ba8e8804b9653cca6307f559adc650b77886fcceed", "fetched_at": "2026-08-29T10:46:07.725363+00:00", "kind": "homepage", "missing": false, "url": "http://jishi.github.io/node-sonos-http-api/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 12, "longevity": 100, "rhythm": 8}, "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": 4917, "days_push": 529, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 28, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}