{"adoption": {"forks": 192, "observed_at": "2026-08-28T04:05:49.268796+00:00", "stars": 1887}, "canonical_url": "https://ross.abutalabs.com/products/open-airplay", "card": {"archived": false, "artifact_type": "library", "description": "A collection of libraries for Apple's AirPlay protocol", "domain": ["media", "developer-tools", "cross-platform"], "enriched": true, "function": ["sdk", "networking", "streaming"], "health_score": 20, "homepage": null, "language": "Java", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["openairplay/open-airplay"], "name": "openairplay/open-airplay", "platform": ["jvm", "cross-platform", "cli"], "pushed_at": "2024-08-28T04:01:26+00:00", "repo": "openairplay/open-airplay", "stars": 1887, "tags": ["airplay", "apple-tv", "screen-mirroring", "bonjour", "jmdns", "protocol-client"], "topics": ["airplay"], "urls": [], "use_cases": ["send photos to apple tv from java", "stream desktop screen to airplay receiver", "cast video to apple tv programmatically", "discover airplay devices on the network with bonjour", "build an airplay sender application", "mirror mac screen to apple tv from command line"], "what_it_is": "A collection of libraries implementing Apple's AirPlay protocol, primarily a Java library with a PHP variant, usable programmatically or from the command line. It supports sending photos, streaming video, and mirroring the desktop to AirPlay receivers like Apple TV, with optional Bonjour auto-discovery via JMDNS.", "when_to_avoid": ["you need an AirPlay receiver/server rather than a sender", "you need a maintained library with an active license and recent development", "you work outside Java/PHP and need native bindings for another language"], "when_to_choose": ["you need to integrate AirPlay sending (photos, video, mirroring) into a Java application", "you want a lightweight command-line tool to cast media to an Apple TV", "you need Bonjour-based discovery of AirPlay receivers on the local network"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/open-airplay", "repo": "openairplay/open-airplay", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.268796+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:13:33.336238+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26c7f1dc6427bcf4b9dac095e1edb4720c4bb38901ff6d1382393c6eabe8c636", "fetched_at": "2026-08-28T04:05:49.268796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openairplay/open-airplay"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.268796+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:13:33.336238+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26c7f1dc6427bcf4b9dac095e1edb4720c4bb38901ff6d1382393c6eabe8c636", "fetched_at": "2026-08-28T04:05:49.268796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openairplay/open-airplay"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:13:33.336238+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26c7f1dc6427bcf4b9dac095e1edb4720c4bb38901ff6d1382393c6eabe8c636", "fetched_at": "2026-08-28T04:05:49.268796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openairplay/open-airplay"}], "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:49.268796+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.268796+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.268796+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:13:33.336238+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26c7f1dc6427bcf4b9dac095e1edb4720c4bb38901ff6d1382393c6eabe8c636", "fetched_at": "2026-08-28T04:05:49.268796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openairplay/open-airplay"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.268796+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.268796+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:13:33.336238+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26c7f1dc6427bcf4b9dac095e1edb4720c4bb38901ff6d1382393c6eabe8c636", "fetched_at": "2026-08-28T04:05:49.268796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openairplay/open-airplay"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.268796+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.268796+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.268796+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:13:33.336238+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26c7f1dc6427bcf4b9dac095e1edb4720c4bb38901ff6d1382393c6eabe8c636", "fetched_at": "2026-08-28T04:05:49.268796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openairplay/open-airplay"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.268796+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:49.268796+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:13:33.336238+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26c7f1dc6427bcf4b9dac095e1edb4720c4bb38901ff6d1382393c6eabe8c636", "fetched_at": "2026-08-28T04:05:49.268796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openairplay/open-airplay"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:13:33.336238+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26c7f1dc6427bcf4b9dac095e1edb4720c4bb38901ff6d1382393c6eabe8c636", "fetched_at": "2026-08-28T04:05:49.268796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openairplay/open-airplay"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:13:33.336238+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26c7f1dc6427bcf4b9dac095e1edb4720c4bb38901ff6d1382393c6eabe8c636", "fetched_at": "2026-08-28T04:05:49.268796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openairplay/open-airplay"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:13:33.336238+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26c7f1dc6427bcf4b9dac095e1edb4720c4bb38901ff6d1382393c6eabe8c636", "fetched_at": "2026-08-28T04:05:49.268796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openairplay/open-airplay"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4325, "days_push": 735, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}