{"adoption": {"forks": 323, "observed_at": "2026-08-28T04:08:09.604367+00:00", "stars": 3552}, "canonical_url": "https://ross.abutalabs.com/products/sndcpy", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Android audio forwarding PoC (scrcpy, but for audio)", "domain": ["android-tools", "media", "cross-platform"], "enriched": true, "function": ["audio-processing", "cli"], "health_score": 76, "homepage": null, "language": "Java", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["rom1v/sndcpy"], "name": "rom1v/sndcpy", "platform": ["windows", "cli"], "pushed_at": "2026-07-15T12:00:54+00:00", "repo": "rom1v/sndcpy", "stars": 3552, "tags": ["audio-forwarding", "android-mirroring", "scrcpy", "proof-of-concept", "adb", "vlc", "audio", "android", "linux", "macos"], "topics": ["android", "audio", "mirroring", "scrcpy"], "urls": [], "use_cases": ["forward android audio to my computer", "play android device sound on pc over usb", "mirror android audio alongside scrcpy", "capture audio playback from android apps without root", "stream phone audio to linux windows or mac"], "what_it_is": "sndcpy is a proof-of-concept tool that forwards audio from an Android 10+ device to a computer over ADB, without root, playing it via VLC. It was created to add audio to scrcpy mirroring, though scrcpy 2.0 now supports audio natively.", "when_to_avoid": ["you use scrcpy 2.0 or later, which supports audio forwarding natively", "the apps you want to capture disallow audio playback capture", "you need a polished, actively developed solution rather than a proof-of-concept"], "when_to_choose": ["you need audio forwarding from an Android 10+ device without root and can't use scrcpy 2.0+", "you want a lightweight standalone tool that works on Linux, Windows, and macOS"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/sndcpy", "repo": "rom1v/sndcpy", "role": "main", "score": 64}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.604367+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:34:19.883918+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45e097632239007bb62b6b5a3c58b5356e75356c5c6ea640e168ad8dd5d10e7d", "fetched_at": "2026-08-28T04:08:09.604367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rom1v/sndcpy"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.604367+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:34:19.883918+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45e097632239007bb62b6b5a3c58b5356e75356c5c6ea640e168ad8dd5d10e7d", "fetched_at": "2026-08-28T04:08:09.604367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rom1v/sndcpy"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:34:19.883918+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45e097632239007bb62b6b5a3c58b5356e75356c5c6ea640e168ad8dd5d10e7d", "fetched_at": "2026-08-28T04:08:09.604367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rom1v/sndcpy"}], "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:08:09.604367+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.604367+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.604367+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:34:19.883918+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45e097632239007bb62b6b5a3c58b5356e75356c5c6ea640e168ad8dd5d10e7d", "fetched_at": "2026-08-28T04:08:09.604367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rom1v/sndcpy"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.604367+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.604367+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:34:19.883918+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45e097632239007bb62b6b5a3c58b5356e75356c5c6ea640e168ad8dd5d10e7d", "fetched_at": "2026-08-28T04:08:09.604367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rom1v/sndcpy"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.604367+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.604367+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.604367+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:34:19.883918+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45e097632239007bb62b6b5a3c58b5356e75356c5c6ea640e168ad8dd5d10e7d", "fetched_at": "2026-08-28T04:08:09.604367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rom1v/sndcpy"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.604367+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.604367+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:34:19.883918+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45e097632239007bb62b6b5a3c58b5356e75356c5c6ea640e168ad8dd5d10e7d", "fetched_at": "2026-08-28T04:08:09.604367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rom1v/sndcpy"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:34:19.883918+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45e097632239007bb62b6b5a3c58b5356e75356c5c6ea640e168ad8dd5d10e7d", "fetched_at": "2026-08-28T04:08:09.604367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rom1v/sndcpy"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:34:19.883918+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45e097632239007bb62b6b5a3c58b5356e75356c5c6ea640e168ad8dd5d10e7d", "fetched_at": "2026-08-28T04:08:09.604367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rom1v/sndcpy"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:34:19.883918+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45e097632239007bb62b6b5a3c58b5356e75356c5c6ea640e168ad8dd5d10e7d", "fetched_at": "2026-08-28T04:08:09.604367+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rom1v/sndcpy"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 92, "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": 2276, "days_push": 49, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 64, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}