{"adoption": {"forks": 232, "observed_at": "2026-08-28T04:07:04.640947+00:00", "stars": 2616}, "canonical_url": "https://ross.abutalabs.com/products/blbl", "card": {"archived": true, "artifact_type": "application", "description": "一个使用原生Android开发的哔哩哔哩安卓客户端，支持触摸、遥控，以及安卓5", "domain": ["android-tools", "media", "entertainment"], "enriched": true, "function": ["gui", "video-processing", "http-client"], "health_score": 10, "homepage": null, "language": "Kotlin", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["cat3399/blbl"], "name": "cat3399/blbl", "platform": ["jvm"], "pushed_at": "2026-07-25T13:53:19+00:00", "repo": "cat3399/blbl", "stars": 2616, "tags": ["bilibili", "third-party-client", "tv", "danmaku", "exoplayer", "media3", "video-streaming", "android", "mobile"], "topics": [], "urls": [], "use_cases": ["watch bilibili videos on android tv", "third-party bilibili client for old android 5 devices", "bilibili app for car head unit", "play bilibili with danmaku and subtitles on tablet", "remote-control friendly bilibili client", "bilibili live streaming on android tv box"], "what_it_is": "A third-party native Android client for Bilibili written in Kotlin, supporting touch and remote-control input down to Android 5. It targets tablets, TVs, and car head units with video playback, live streams, search, and danmaku via Media3/ExoPlayer or Ijkplayer.", "when_to_avoid": ["you need an officially supported client with guaranteed API stability", "you require iOS or desktop support", "you are uncomfortable with an unofficial client that may break when Bilibili changes its API"], "when_to_choose": ["you need a Bilibili client on Android TV, tablets, or car systems where the official app is unavailable or unsupported", "you must support old devices running Android 5", "you want touch and D-pad/remote navigation in one app"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/blbl", "repo": "cat3399/blbl", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.640947+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:20:25.079092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7130793f13c3dfd4443d5e8f41bd2a502bf7864db96d2c740250b0fb6cd3f00d", "fetched_at": "2026-08-28T04:07:04.640947+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cat3399/blbl"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.640947+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:20:25.079092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7130793f13c3dfd4443d5e8f41bd2a502bf7864db96d2c740250b0fb6cd3f00d", "fetched_at": "2026-08-28T04:07:04.640947+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cat3399/blbl"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:20:25.079092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7130793f13c3dfd4443d5e8f41bd2a502bf7864db96d2c740250b0fb6cd3f00d", "fetched_at": "2026-08-28T04:07:04.640947+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cat3399/blbl"}], "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:04.640947+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.640947+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.640947+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:20:25.079092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7130793f13c3dfd4443d5e8f41bd2a502bf7864db96d2c740250b0fb6cd3f00d", "fetched_at": "2026-08-28T04:07:04.640947+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cat3399/blbl"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.640947+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.640947+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:20:25.079092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7130793f13c3dfd4443d5e8f41bd2a502bf7864db96d2c740250b0fb6cd3f00d", "fetched_at": "2026-08-28T04:07:04.640947+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cat3399/blbl"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.640947+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.640947+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.640947+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:20:25.079092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7130793f13c3dfd4443d5e8f41bd2a502bf7864db96d2c740250b0fb6cd3f00d", "fetched_at": "2026-08-28T04:07:04.640947+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cat3399/blbl"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.640947+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.640947+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:20:25.079092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7130793f13c3dfd4443d5e8f41bd2a502bf7864db96d2c740250b0fb6cd3f00d", "fetched_at": "2026-08-28T04:07:04.640947+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cat3399/blbl"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:20:25.079092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7130793f13c3dfd4443d5e8f41bd2a502bf7864db96d2c740250b0fb6cd3f00d", "fetched_at": "2026-08-28T04:07:04.640947+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cat3399/blbl"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:20:25.079092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7130793f13c3dfd4443d5e8f41bd2a502bf7864db96d2c740250b0fb6cd3f00d", "fetched_at": "2026-08-28T04:07:04.640947+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cat3399/blbl"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:20:25.079092+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7130793f13c3dfd4443d5e8f41bd2a502bf7864db96d2c740250b0fb6cd3f00d", "fetched_at": "2026-08-28T04:07:04.640947+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cat3399/blbl"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 94, "longevity": 16, "rhythm": 95}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["archived", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 234, "days_push": 39, "days_rel": 39, "gap_med": 3, "n_releases_24m": 28}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}