{"adoption": {"forks": 552, "observed_at": "2026-08-28T04:07:09.825206+00:00", "stars": 2677}, "canonical_url": "https://ross.abutalabs.com/products/mediastreamrecorder", "card": {"archived": false, "artifact_type": "library", "description": "Cross browser audio/video/screen recording. It supports Chrome, Firefox, Opera and Microsoft Edge. It even works on Android browsers. It follows latest MediaRecorder API standards and provides similar APIs.", "domain": ["web-development", "media", "browser-extensions"], "enriched": true, "function": ["audio-processing", "video-processing", "sdk"], "health_score": 20, "homepage": "https://www.webrtc-experiment.com/msr/", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["streamproc/MediaStreamRecorder"], "name": "streamproc/MediaStreamRecorder", "platform": ["browser", "cross-platform"], "pushed_at": "2018-07-04T13:42:21+00:00", "repo": "streamproc/MediaStreamRecorder", "stars": 2677, "tags": ["mediarecorder", "webrtc", "screen-recording", "audio-recording", "video-recording", "javascript", "cross-browser", "nodejs"], "topics": ["mediastreamrecorder", "mediarecorder", "webrtc", "webrtc-experiments", "webrtc-demos"], "urls": [], "use_cases": ["record microphone audio in the browser", "record webcam video from a web page", "capture screen or tab recordings in the browser", "record canvas 2D/3D animations as video", "upload recorded audio/video blobs to a server in realtime", "record gif animations in the browser", "record multiple streams into a single container"], "what_it_is": "MediaStreamRecorder.js is a cross-browser JavaScript library for recording audio, video, screen, and canvas streams using the MediaRecorder API standards. It supports Chrome, Firefox, Opera, Edge, and Android browsers, and can emit recorded blobs at time intervals for realtime upload.", "when_to_avoid": ["your target browsers all have solid native MediaRecorder support and you don't need shims", "you need server-side or native (non-browser) media recording", "you need actively maintained code with recent releases", "you need advanced post-processing like editing or transcoding"], "when_to_choose": ["you need a consistent recording API across browsers with inconsistent MediaRecorder support", "you want to record camera, microphone, screen, or canvas streams in a web app", "you need periodic blobs for realtime upload to a server", "you need to support older or mobile browsers"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/mediastreamrecorder", "repo": "streamproc/MediaStreamRecorder", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.825206+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:18:01.091815+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a6b84949c491fb042d5ff618e3472a936c2a02549dcb8c00de2560419cc1bf06", "fetched_at": "2026-08-28T04:07:09.825206+00:00", "kind": "readme", "missing": false, "url": "https://github.com/streamproc/MediaStreamRecorder"}, {"content_hash": "ef87e6d53b748e244a7f785bb42301b5c06642fccdd947f0f4c8c71aaf25df78", "fetched_at": "2026-08-29T10:00:40.423190+00:00", "kind": "homepage", "missing": false, "url": "https://www.webrtc-experiment.com/msr/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.825206+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:18:01.091815+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a6b84949c491fb042d5ff618e3472a936c2a02549dcb8c00de2560419cc1bf06", "fetched_at": "2026-08-28T04:07:09.825206+00:00", "kind": "readme", "missing": false, "url": "https://github.com/streamproc/MediaStreamRecorder"}, {"content_hash": "ef87e6d53b748e244a7f785bb42301b5c06642fccdd947f0f4c8c71aaf25df78", "fetched_at": "2026-08-29T10:00:40.423190+00:00", "kind": "homepage", "missing": false, "url": "https://www.webrtc-experiment.com/msr/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:18:01.091815+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a6b84949c491fb042d5ff618e3472a936c2a02549dcb8c00de2560419cc1bf06", "fetched_at": "2026-08-28T04:07:09.825206+00:00", "kind": "readme", "missing": false, "url": "https://github.com/streamproc/MediaStreamRecorder"}, {"content_hash": "ef87e6d53b748e244a7f785bb42301b5c06642fccdd947f0f4c8c71aaf25df78", "fetched_at": "2026-08-29T10:00:40.423190+00:00", "kind": "homepage", "missing": false, "url": "https://www.webrtc-experiment.com/msr/"}], "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:07:09.825206+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.825206+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.825206+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:18:01.091815+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a6b84949c491fb042d5ff618e3472a936c2a02549dcb8c00de2560419cc1bf06", "fetched_at": "2026-08-28T04:07:09.825206+00:00", "kind": "readme", "missing": false, "url": "https://github.com/streamproc/MediaStreamRecorder"}, {"content_hash": "ef87e6d53b748e244a7f785bb42301b5c06642fccdd947f0f4c8c71aaf25df78", "fetched_at": "2026-08-29T10:00:40.423190+00:00", "kind": "homepage", "missing": false, "url": "https://www.webrtc-experiment.com/msr/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.825206+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.825206+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:18:01.091815+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a6b84949c491fb042d5ff618e3472a936c2a02549dcb8c00de2560419cc1bf06", "fetched_at": "2026-08-28T04:07:09.825206+00:00", "kind": "readme", "missing": false, "url": "https://github.com/streamproc/MediaStreamRecorder"}, {"content_hash": "ef87e6d53b748e244a7f785bb42301b5c06642fccdd947f0f4c8c71aaf25df78", "fetched_at": "2026-08-29T10:00:40.423190+00:00", "kind": "homepage", "missing": false, "url": "https://www.webrtc-experiment.com/msr/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.825206+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.825206+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.825206+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:18:01.091815+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a6b84949c491fb042d5ff618e3472a936c2a02549dcb8c00de2560419cc1bf06", "fetched_at": "2026-08-28T04:07:09.825206+00:00", "kind": "readme", "missing": false, "url": "https://github.com/streamproc/MediaStreamRecorder"}, {"content_hash": "ef87e6d53b748e244a7f785bb42301b5c06642fccdd947f0f4c8c71aaf25df78", "fetched_at": "2026-08-29T10:00:40.423190+00:00", "kind": "homepage", "missing": false, "url": "https://www.webrtc-experiment.com/msr/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.825206+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.825206+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:18:01.091815+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a6b84949c491fb042d5ff618e3472a936c2a02549dcb8c00de2560419cc1bf06", "fetched_at": "2026-08-28T04:07:09.825206+00:00", "kind": "readme", "missing": false, "url": "https://github.com/streamproc/MediaStreamRecorder"}, {"content_hash": "ef87e6d53b748e244a7f785bb42301b5c06642fccdd947f0f4c8c71aaf25df78", "fetched_at": "2026-08-29T10:00:40.423190+00:00", "kind": "homepage", "missing": false, "url": "https://www.webrtc-experiment.com/msr/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:18:01.091815+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a6b84949c491fb042d5ff618e3472a936c2a02549dcb8c00de2560419cc1bf06", "fetched_at": "2026-08-28T04:07:09.825206+00:00", "kind": "readme", "missing": false, "url": "https://github.com/streamproc/MediaStreamRecorder"}, {"content_hash": "ef87e6d53b748e244a7f785bb42301b5c06642fccdd947f0f4c8c71aaf25df78", "fetched_at": "2026-08-29T10:00:40.423190+00:00", "kind": "homepage", "missing": false, "url": "https://www.webrtc-experiment.com/msr/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:18:01.091815+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a6b84949c491fb042d5ff618e3472a936c2a02549dcb8c00de2560419cc1bf06", "fetched_at": "2026-08-28T04:07:09.825206+00:00", "kind": "readme", "missing": false, "url": "https://github.com/streamproc/MediaStreamRecorder"}, {"content_hash": "ef87e6d53b748e244a7f785bb42301b5c06642fccdd947f0f4c8c71aaf25df78", "fetched_at": "2026-08-29T10:00:40.423190+00:00", "kind": "homepage", "missing": false, "url": "https://www.webrtc-experiment.com/msr/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:18:01.091815+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a6b84949c491fb042d5ff618e3472a936c2a02549dcb8c00de2560419cc1bf06", "fetched_at": "2026-08-28T04:07:09.825206+00:00", "kind": "readme", "missing": false, "url": "https://github.com/streamproc/MediaStreamRecorder"}, {"content_hash": "ef87e6d53b748e244a7f785bb42301b5c06642fccdd947f0f4c8c71aaf25df78", "fetched_at": "2026-08-29T10:00:40.423190+00:00", "kind": "homepage", "missing": false, "url": "https://www.webrtc-experiment.com/msr/"}], "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": 4796, "days_push": 2982, "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}}