{"adoption": {"forks": 151, "observed_at": "2026-08-28T04:05:47.481996+00:00", "stars": 1877}, "canonical_url": "https://ross.abutalabs.com/products/novel-downloader", "card": {"archived": false, "artifact_type": "plugin", "description": "一个可扩展的通用型小说下载器。", "domain": ["files", "crawlers", "privacy"], "enriched": true, "function": ["web-scraping", "file-upload", "developer-tools"], "health_score": 79, "homepage": null, "language": "TypeScript", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["404-novel-project/novel-downloader"], "name": "404-novel-project/novel-downloader", "platform": ["browser", "browser-extension", "cross-platform"], "pushed_at": "2026-08-14T06:42:14+00:00", "repo": "404-novel-project/novel-downloader", "stars": 1877, "tags": ["userscript", "tampermonkey", "novel-downloader", "epub", "txt-export", "greasemonkey", "violentmonkey", "web-archive", "chinese-novels", "automation"], "topics": ["novel-downloader", "novel"], "urls": [], "use_cases": ["download a novel from a supported web novel site as epub", "save web novels as txt files for offline reading", "archive novels before they get deleted from sites like Qidian or JJWXC", "scrape book chapters from a novel catalog page", "download paid chapters I have purchased with my account", "back up light novel series that sites have removed"], "what_it_is": "An extensible userscript (Tampermonkey/Greasemonkey/Violentmonkey) that downloads novels from many Chinese web novel sites and exports them as TXT and EPUB files. It is part of the 404 Novel Library project, which archives at-risk online novels to archive.org so they survive takedowns.", "when_to_avoid": ["you need a standalone desktop or mobile downloader rather than a browser userscript", "you want to download from sites behind login walls without owning/purchasing the chapters", "you need a general-purpose web scraper rather than a novel-specific tool"], "when_to_choose": ["you read Chinese web novels and want offline copies in TXT or EPUB", "you want a browser-based downloader that works across many novel sites without installing separate apps", "you want to help preserve novels at risk of disappearing by archiving them"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/novel-downloader", "repo": "404-novel-project/novel-downloader", "role": "main", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.481996+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:14:40.385561+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d38b563165e5f27f36eb6ea0b7675a1d8d912ee510cf814b29bdaf7d26fee7d", "fetched_at": "2026-08-28T04:05:47.481996+00:00", "kind": "readme", "missing": false, "url": "https://github.com/404-novel-project/novel-downloader"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.481996+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:14:40.385561+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d38b563165e5f27f36eb6ea0b7675a1d8d912ee510cf814b29bdaf7d26fee7d", "fetched_at": "2026-08-28T04:05:47.481996+00:00", "kind": "readme", "missing": false, "url": "https://github.com/404-novel-project/novel-downloader"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:14:40.385561+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d38b563165e5f27f36eb6ea0b7675a1d8d912ee510cf814b29bdaf7d26fee7d", "fetched_at": "2026-08-28T04:05:47.481996+00:00", "kind": "readme", "missing": false, "url": "https://github.com/404-novel-project/novel-downloader"}], "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:47.481996+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.481996+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.481996+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:14:40.385561+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d38b563165e5f27f36eb6ea0b7675a1d8d912ee510cf814b29bdaf7d26fee7d", "fetched_at": "2026-08-28T04:05:47.481996+00:00", "kind": "readme", "missing": false, "url": "https://github.com/404-novel-project/novel-downloader"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.481996+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.481996+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:14:40.385561+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d38b563165e5f27f36eb6ea0b7675a1d8d912ee510cf814b29bdaf7d26fee7d", "fetched_at": "2026-08-28T04:05:47.481996+00:00", "kind": "readme", "missing": false, "url": "https://github.com/404-novel-project/novel-downloader"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.481996+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.481996+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.481996+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:14:40.385561+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d38b563165e5f27f36eb6ea0b7675a1d8d912ee510cf814b29bdaf7d26fee7d", "fetched_at": "2026-08-28T04:05:47.481996+00:00", "kind": "readme", "missing": false, "url": "https://github.com/404-novel-project/novel-downloader"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.481996+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.481996+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:14:40.385561+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d38b563165e5f27f36eb6ea0b7675a1d8d912ee510cf814b29bdaf7d26fee7d", "fetched_at": "2026-08-28T04:05:47.481996+00:00", "kind": "readme", "missing": false, "url": "https://github.com/404-novel-project/novel-downloader"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:14:40.385561+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d38b563165e5f27f36eb6ea0b7675a1d8d912ee510cf814b29bdaf7d26fee7d", "fetched_at": "2026-08-28T04:05:47.481996+00:00", "kind": "readme", "missing": false, "url": "https://github.com/404-novel-project/novel-downloader"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:14:40.385561+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d38b563165e5f27f36eb6ea0b7675a1d8d912ee510cf814b29bdaf7d26fee7d", "fetched_at": "2026-08-28T04:05:47.481996+00:00", "kind": "readme", "missing": false, "url": "https://github.com/404-novel-project/novel-downloader"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:14:40.385561+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d38b563165e5f27f36eb6ea0b7675a1d8d912ee510cf814b29bdaf7d26fee7d", "fetched_at": "2026-08-28T04:05:47.481996+00:00", "kind": "readme", "missing": false, "url": "https://github.com/404-novel-project/novel-downloader"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1974, "days_push": 19, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 76, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}