{"adoption": {"forks": 342, "observed_at": "2026-08-28T04:05:25.822153+00:00", "stars": 1712}, "canonical_url": "https://ross.abutalabs.com/products/p2p-media-loader", "card": {"archived": false, "artifact_type": "library", "description": "An open-source engine for P2P streaming of live and on demand video directly in a web browser HTML page", "domain": ["web-development", "media", "networking", "frontend"], "enriched": true, "function": ["p2p", "web-framework", "http-client", "video-processing", "middleware"], "health_score": 99, "homepage": "https://novage.com.ua/p2p-media-loader/demo.html", "language": "TypeScript", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["Novage/p2p-media-loader"], "name": "Novage/p2p-media-loader", "platform": ["browser", "cross-platform"], "pushed_at": "2026-08-19T11:30:28+00:00", "repo": "Novage/p2p-media-loader", "stars": 1712, "tags": ["p2p-streaming", "hls", "mpeg-dash", "webrtc", "webtorrent", "hlsjs", "shaka-player", "p2p-cdn", "video-delivery", "typescript", "video", "web-server", "nodejs"], "topics": ["p2p", "hls", "dash", "hlsjs", "shaka-player", "video", "webtorrent", "player", "webrtc", "bittorrent", "p2p-media-loader", "mediastream", "p2p-network", "media-playback", "peer"], "urls": [], "use_cases": ["stream live video to many viewers with p2p traffic sharing", "reduce CDN bandwidth costs for video streaming", "build a hybrid p2p CDN for HLS streams", "add peer-to-peer video delivery to a web page", "offload origin server load for VOD streaming", "embed p2p streaming in native iOS and Android apps", "set up p2ptv for large audiences without server software"], "what_it_is": "P2P Media Loader is an open-source JavaScript/TypeScript library that enables peer-to-peer delivery of live and on-demand HLS and MPEG-DASH video directly in the browser using WebRTC and HTML5 video, with no plugins required. It integrates with popular players like HLS.js and Shaka Player to build hybrid P2P CDN networks that offload traffic from origin servers.", "when_to_avoid": ["your audience is very small, so P2P mesh benefits are negligible", "you need DRM-protected streams or strict peer traffic policies", "your environment blocks WebRTC or WebTorrent data channels", "you need non-video file distribution rather than media streaming"], "when_to_choose": ["you serve HLS or MPEG-DASH video to large audiences and want to cut bandwidth costs", "you need browser-based P2P streaming without plugins, across desktop and mobile", "you use HLS.js or Shaka Player and want drop-in P2P integration", "you want live or VOD streaming with reduced origin/CDN load"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/p2p-media-loader", "repo": "Novage/p2p-media-loader", "role": "main", "score": 98}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.822153+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:34:46.128662+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "adbaeeef06ef2f47e945a29840d8b6055384cd83a94a43c2790d8a2a01384e91", "fetched_at": "2026-08-28T04:05:25.822153+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Novage/p2p-media-loader"}, {"content_hash": "baf5c78f71da8fd244ef2e12262b0ec54a3728a08488e8ca523f8604304c9300", "fetched_at": "2026-08-29T11:11:12.056109+00:00", "kind": "homepage", "missing": false, "url": "https://novage.com.ua/p2p-media-loader/demo.html"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.822153+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:34:46.128662+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "adbaeeef06ef2f47e945a29840d8b6055384cd83a94a43c2790d8a2a01384e91", "fetched_at": "2026-08-28T04:05:25.822153+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Novage/p2p-media-loader"}, {"content_hash": "baf5c78f71da8fd244ef2e12262b0ec54a3728a08488e8ca523f8604304c9300", "fetched_at": "2026-08-29T11:11:12.056109+00:00", "kind": "homepage", "missing": false, "url": "https://novage.com.ua/p2p-media-loader/demo.html"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:34:46.128662+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "adbaeeef06ef2f47e945a29840d8b6055384cd83a94a43c2790d8a2a01384e91", "fetched_at": "2026-08-28T04:05:25.822153+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Novage/p2p-media-loader"}, {"content_hash": "baf5c78f71da8fd244ef2e12262b0ec54a3728a08488e8ca523f8604304c9300", "fetched_at": "2026-08-29T11:11:12.056109+00:00", "kind": "homepage", "missing": false, "url": "https://novage.com.ua/p2p-media-loader/demo.html"}], "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:25.822153+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.822153+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.822153+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:34:46.128662+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "adbaeeef06ef2f47e945a29840d8b6055384cd83a94a43c2790d8a2a01384e91", "fetched_at": "2026-08-28T04:05:25.822153+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Novage/p2p-media-loader"}, {"content_hash": "baf5c78f71da8fd244ef2e12262b0ec54a3728a08488e8ca523f8604304c9300", "fetched_at": "2026-08-29T11:11:12.056109+00:00", "kind": "homepage", "missing": false, "url": "https://novage.com.ua/p2p-media-loader/demo.html"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.822153+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.822153+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:34:46.128662+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "adbaeeef06ef2f47e945a29840d8b6055384cd83a94a43c2790d8a2a01384e91", "fetched_at": "2026-08-28T04:05:25.822153+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Novage/p2p-media-loader"}, {"content_hash": "baf5c78f71da8fd244ef2e12262b0ec54a3728a08488e8ca523f8604304c9300", "fetched_at": "2026-08-29T11:11:12.056109+00:00", "kind": "homepage", "missing": false, "url": "https://novage.com.ua/p2p-media-loader/demo.html"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.822153+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.822153+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.822153+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:34:46.128662+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "adbaeeef06ef2f47e945a29840d8b6055384cd83a94a43c2790d8a2a01384e91", "fetched_at": "2026-08-28T04:05:25.822153+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Novage/p2p-media-loader"}, {"content_hash": "baf5c78f71da8fd244ef2e12262b0ec54a3728a08488e8ca523f8604304c9300", "fetched_at": "2026-08-29T11:11:12.056109+00:00", "kind": "homepage", "missing": false, "url": "https://novage.com.ua/p2p-media-loader/demo.html"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.822153+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.822153+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:34:46.128662+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "adbaeeef06ef2f47e945a29840d8b6055384cd83a94a43c2790d8a2a01384e91", "fetched_at": "2026-08-28T04:05:25.822153+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Novage/p2p-media-loader"}, {"content_hash": "baf5c78f71da8fd244ef2e12262b0ec54a3728a08488e8ca523f8604304c9300", "fetched_at": "2026-08-29T11:11:12.056109+00:00", "kind": "homepage", "missing": false, "url": "https://novage.com.ua/p2p-media-loader/demo.html"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:34:46.128662+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "adbaeeef06ef2f47e945a29840d8b6055384cd83a94a43c2790d8a2a01384e91", "fetched_at": "2026-08-28T04:05:25.822153+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Novage/p2p-media-loader"}, {"content_hash": "baf5c78f71da8fd244ef2e12262b0ec54a3728a08488e8ca523f8604304c9300", "fetched_at": "2026-08-29T11:11:12.056109+00:00", "kind": "homepage", "missing": false, "url": "https://novage.com.ua/p2p-media-loader/demo.html"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:34:46.128662+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "adbaeeef06ef2f47e945a29840d8b6055384cd83a94a43c2790d8a2a01384e91", "fetched_at": "2026-08-28T04:05:25.822153+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Novage/p2p-media-loader"}, {"content_hash": "baf5c78f71da8fd244ef2e12262b0ec54a3728a08488e8ca523f8604304c9300", "fetched_at": "2026-08-29T11:11:12.056109+00:00", "kind": "homepage", "missing": false, "url": "https://novage.com.ua/p2p-media-loader/demo.html"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:34:46.128662+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "adbaeeef06ef2f47e945a29840d8b6055384cd83a94a43c2790d8a2a01384e91", "fetched_at": "2026-08-28T04:05:25.822153+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Novage/p2p-media-loader"}, {"content_hash": "baf5c78f71da8fd244ef2e12262b0ec54a3728a08488e8ca523f8604304c9300", "fetched_at": "2026-08-29T11:11:12.056109+00:00", "kind": "homepage", "missing": false, "url": "https://novage.com.ua/p2p-media-loader/demo.html"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 98}, "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": 2948, "days_push": 14, "days_rel": 14, "gap_med": 22, "n_releases_24m": 14}, "score": 98, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}