{"adoption": {"forks": 655, "observed_at": "2026-08-28T04:09:16.261006+00:00", "stars": 5381}, "canonical_url": "https://ross.abutalabs.com/products/biliup", "card": {"archived": false, "artifact_type": "cli-tool", "description": "自动直播录制、投稿、twitch、ytb频道搬运工具。命令行投稿(B站)和视频下载工具，提供多种登录方式，支持多p。", "domain": ["media", "developer-tools", "self-hosted"], "enriched": true, "function": ["video-processing", "http-client", "cli", "gui", "workflow-automation", "web-scraping"], "health_score": 100, "homepage": "https://biliup.github.io/biliup/", "language": "Rust", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["biliup/biliup", "biliup/biliup-rs"], "name": "biliup", "platform": ["windows", "cli", "python", "rust", "cross-platform", "self-hosted"], "pushed_at": "2026-08-25T07:50:40+00:00", "repo": "biliup/biliup", "stars": 5381, "tags": ["bilibili", "livestream-recording", "douyu", "huya", "douyin", "youtube", "twitch", "video-upload", "stream-download", "webui", "automation", "linux", "macos", "docker"], "topics": ["bilibili", "huya", "douyu", "douyin", "youtube", "twitch"], "urls": [{"kind": "homepage", "url": "https://biliup.github.io/biliup/"}], "use_cases": ["automatically record bilibili livestreams when a streamer goes live", "reupload youtube channel videos to bilibili automatically", "upload videos to bilibili from the command line", "download hls or flv streams from douyu and huya", "run an unattended 24/7 recording and uploading service", "append additional parts to an existing bilibili submission", "manage bilibili login cookies for automation scripts"], "what_it_is": "Biliup is a toolkit for automatically recording livestreams (bilibili, Douyu, Huya, Douyin, etc.), downloading videos from YouTube/Twitch, and uploading them to Bilibili. It includes a Rust CLI for uploads/downloads with multiple login methods, a Python service with a Web UI for 24/7 unattended recording and auto-upload pipelines, and a Tauri desktop app.", "when_to_avoid": ["you need commercial use - the project explicitly prohibits it", "you need guaranteed stability or official support", "you only need a simple video downloader for non-supported platforms"], "when_to_choose": ["you need hands-off, scheduled recording and reuploading of streams or channel videos to bilibili", "you want a CLI uploader with multiple bilibili login methods (SMS, password, QR, cookie)", "you want a self-hosted web UI to monitor and configure multi-streamer recording"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/repos/biliup/biliup", "repo": "biliup/biliup", "role": "main", "score": 95}, {"path": "/repos/biliup/biliup-rs", "repo": "biliup/biliup-rs", "role": "mirror", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:16.261006+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:58:26.412462+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fca5431379d12cf8c67a35753de8506f5d55afab0dcbb079b2cda32b5345eabf", "fetched_at": "2026-08-28T04:09:16.261006+00:00", "kind": "readme", "missing": false, "url": "https://github.com/biliup/biliup"}, {"content_hash": "36af40fe43a37b1c1f1e35d4616722a8f737629828d86ddb21770b14a31dd531", "fetched_at": "2026-08-29T08:52:48.293614+00:00", "kind": "homepage", "missing": false, "url": "https://biliup.github.io/biliup/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:16.261006+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:58:26.412462+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fca5431379d12cf8c67a35753de8506f5d55afab0dcbb079b2cda32b5345eabf", "fetched_at": "2026-08-28T04:09:16.261006+00:00", "kind": "readme", "missing": false, "url": "https://github.com/biliup/biliup"}, {"content_hash": "36af40fe43a37b1c1f1e35d4616722a8f737629828d86ddb21770b14a31dd531", "fetched_at": "2026-08-29T08:52:48.293614+00:00", "kind": "homepage", "missing": false, "url": "https://biliup.github.io/biliup/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:58:26.412462+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fca5431379d12cf8c67a35753de8506f5d55afab0dcbb079b2cda32b5345eabf", "fetched_at": "2026-08-28T04:09:16.261006+00:00", "kind": "readme", "missing": false, "url": "https://github.com/biliup/biliup"}, {"content_hash": "36af40fe43a37b1c1f1e35d4616722a8f737629828d86ddb21770b14a31dd531", "fetched_at": "2026-08-29T08:52:48.293614+00:00", "kind": "homepage", "missing": false, "url": "https://biliup.github.io/biliup/"}], "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:09:16.261006+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:16.261006+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:16.261006+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:58:26.412462+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fca5431379d12cf8c67a35753de8506f5d55afab0dcbb079b2cda32b5345eabf", "fetched_at": "2026-08-28T04:09:16.261006+00:00", "kind": "readme", "missing": false, "url": "https://github.com/biliup/biliup"}, {"content_hash": "36af40fe43a37b1c1f1e35d4616722a8f737629828d86ddb21770b14a31dd531", "fetched_at": "2026-08-29T08:52:48.293614+00:00", "kind": "homepage", "missing": false, "url": "https://biliup.github.io/biliup/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:16.261006+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:16.261006+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:58:26.412462+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fca5431379d12cf8c67a35753de8506f5d55afab0dcbb079b2cda32b5345eabf", "fetched_at": "2026-08-28T04:09:16.261006+00:00", "kind": "readme", "missing": false, "url": "https://github.com/biliup/biliup"}, {"content_hash": "36af40fe43a37b1c1f1e35d4616722a8f737629828d86ddb21770b14a31dd531", "fetched_at": "2026-08-29T08:52:48.293614+00:00", "kind": "homepage", "missing": false, "url": "https://biliup.github.io/biliup/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:16.261006+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:16.261006+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:16.261006+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:58:26.412462+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fca5431379d12cf8c67a35753de8506f5d55afab0dcbb079b2cda32b5345eabf", "fetched_at": "2026-08-28T04:09:16.261006+00:00", "kind": "readme", "missing": false, "url": "https://github.com/biliup/biliup"}, {"content_hash": "36af40fe43a37b1c1f1e35d4616722a8f737629828d86ddb21770b14a31dd531", "fetched_at": "2026-08-29T08:52:48.293614+00:00", "kind": "homepage", "missing": false, "url": "https://biliup.github.io/biliup/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:16.261006+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:16.261006+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:58:26.412462+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fca5431379d12cf8c67a35753de8506f5d55afab0dcbb079b2cda32b5345eabf", "fetched_at": "2026-08-28T04:09:16.261006+00:00", "kind": "readme", "missing": false, "url": "https://github.com/biliup/biliup"}, {"content_hash": "36af40fe43a37b1c1f1e35d4616722a8f737629828d86ddb21770b14a31dd531", "fetched_at": "2026-08-29T08:52:48.293614+00:00", "kind": "homepage", "missing": false, "url": "https://biliup.github.io/biliup/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:58:26.412462+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fca5431379d12cf8c67a35753de8506f5d55afab0dcbb079b2cda32b5345eabf", "fetched_at": "2026-08-28T04:09:16.261006+00:00", "kind": "readme", "missing": false, "url": "https://github.com/biliup/biliup"}, {"content_hash": "36af40fe43a37b1c1f1e35d4616722a8f737629828d86ddb21770b14a31dd531", "fetched_at": "2026-08-29T08:52:48.293614+00:00", "kind": "homepage", "missing": false, "url": "https://biliup.github.io/biliup/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:58:26.412462+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fca5431379d12cf8c67a35753de8506f5d55afab0dcbb079b2cda32b5345eabf", "fetched_at": "2026-08-28T04:09:16.261006+00:00", "kind": "readme", "missing": false, "url": "https://github.com/biliup/biliup"}, {"content_hash": "36af40fe43a37b1c1f1e35d4616722a8f737629828d86ddb21770b14a31dd531", "fetched_at": "2026-08-29T08:52:48.293614+00:00", "kind": "homepage", "missing": false, "url": "https://biliup.github.io/biliup/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:58:26.412462+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fca5431379d12cf8c67a35753de8506f5d55afab0dcbb079b2cda32b5345eabf", "fetched_at": "2026-08-28T04:09:16.261006+00:00", "kind": "readme", "missing": false, "url": "https://github.com/biliup/biliup"}, {"content_hash": "36af40fe43a37b1c1f1e35d4616722a8f737629828d86ddb21770b14a31dd531", "fetched_at": "2026-08-29T08:52:48.293614+00:00", "kind": "homepage", "missing": false, "url": "https://biliup.github.io/biliup/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 87}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3160, "days_push": 8, "days_rel": 10, "gap_med": 2.0, "n_releases_24m": 67}, "score": 95, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}