{"adoption": {"forks": 266, "observed_at": "2026-08-28T04:03:59.411262+00:00", "stars": 1206}, "canonical_url": "https://ross.abutalabs.com/products/2fps-recorder", "card": {"archived": false, "artifact_type": "library", "description": "html5 js 浏览器 web端录音", "domain": ["web-development", "speech-processing"], "enriched": true, "function": ["audio-processing", "sdk"], "health_score": 20, "homepage": "https://recorder.zhuyuntao.cn/", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["2fps/recorder"], "name": "2fps/recorder", "platform": ["browser"], "pushed_at": "2022-12-09T19:43:40+00:00", "repo": "2fps/recorder", "stars": 1206, "tags": ["recorder", "webaudio", "pcm", "wav", "mp3", "microphone", "voice-recording", "audio", "javascript"], "topics": ["javascript", "recorder", "audio", "pcm", "wav", "html5", "web", "typescript", "lu-yin", "webaudio", "mp3"], "urls": [], "use_cases": ["record audio from microphone in the browser", "export browser recordings as wav or pcm files", "capture short voice clips for speech recognition APIs", "show a live audio waveform while recording", "record and encode audio to mp3 in a web app"], "what_it_is": "A JavaScript library for recording audio in the browser using the HTML5 Web Audio API. It supports recording, pausing, resuming, playback, waveform display, and exporting audio as PCM, WAV, or MP3 (via lamejs).", "when_to_avoid": ["you need server-side or native (non-browser) audio recording", "you need long-duration or streaming recording with real-time processing", "you need support for Internet Explorer or older unsupported mobile browsers", "you need actively maintained software with frequent updates"], "when_to_choose": ["you need client-side microphone recording in a web app", "you want to export recordings as PCM, WAV, or MP3", "you need recording data compatible with third-party speech recognition services", "you want waveform visualization during recording"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/2fps-recorder", "repo": "2fps/recorder", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:59.411262+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:19:15.649822+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54eb29f367e001add5eb5b152e105b0036bfbcb74936ea25efd52e68a7153072", "fetched_at": "2026-08-28T04:03:59.411262+00:00", "kind": "readme", "missing": false, "url": "https://github.com/2fps/recorder"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:59.411262+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:19:15.649822+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54eb29f367e001add5eb5b152e105b0036bfbcb74936ea25efd52e68a7153072", "fetched_at": "2026-08-28T04:03:59.411262+00:00", "kind": "readme", "missing": false, "url": "https://github.com/2fps/recorder"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:19:15.649822+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54eb29f367e001add5eb5b152e105b0036bfbcb74936ea25efd52e68a7153072", "fetched_at": "2026-08-28T04:03:59.411262+00:00", "kind": "readme", "missing": false, "url": "https://github.com/2fps/recorder"}], "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:03:59.411262+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:59.411262+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:59.411262+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:19:15.649822+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54eb29f367e001add5eb5b152e105b0036bfbcb74936ea25efd52e68a7153072", "fetched_at": "2026-08-28T04:03:59.411262+00:00", "kind": "readme", "missing": false, "url": "https://github.com/2fps/recorder"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:59.411262+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:59.411262+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:19:15.649822+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54eb29f367e001add5eb5b152e105b0036bfbcb74936ea25efd52e68a7153072", "fetched_at": "2026-08-28T04:03:59.411262+00:00", "kind": "readme", "missing": false, "url": "https://github.com/2fps/recorder"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:59.411262+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:59.411262+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:59.411262+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:19:15.649822+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54eb29f367e001add5eb5b152e105b0036bfbcb74936ea25efd52e68a7153072", "fetched_at": "2026-08-28T04:03:59.411262+00:00", "kind": "readme", "missing": false, "url": "https://github.com/2fps/recorder"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:59.411262+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:59.411262+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:19:15.649822+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54eb29f367e001add5eb5b152e105b0036bfbcb74936ea25efd52e68a7153072", "fetched_at": "2026-08-28T04:03:59.411262+00:00", "kind": "readme", "missing": false, "url": "https://github.com/2fps/recorder"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:19:15.649822+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54eb29f367e001add5eb5b152e105b0036bfbcb74936ea25efd52e68a7153072", "fetched_at": "2026-08-28T04:03:59.411262+00:00", "kind": "readme", "missing": false, "url": "https://github.com/2fps/recorder"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:19:15.649822+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54eb29f367e001add5eb5b152e105b0036bfbcb74936ea25efd52e68a7153072", "fetched_at": "2026-08-28T04:03:59.411262+00:00", "kind": "readme", "missing": false, "url": "https://github.com/2fps/recorder"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:19:15.649822+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54eb29f367e001add5eb5b152e105b0036bfbcb74936ea25efd52e68a7153072", "fetched_at": "2026-08-28T04:03:59.411262+00:00", "kind": "readme", "missing": false, "url": "https://github.com/2fps/recorder"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "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": 2785, "days_push": 1363, "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}}