{"adoption": {"forks": 770, "observed_at": "2026-08-28T04:06:22.170617+00:00", "stars": 2175}, "canonical_url": "https://ross.abutalabs.com/products/scholarpy", "card": {"archived": true, "artifact_type": "library", "description": "A parser for Google Scholar, written in Python", "domain": ["data-science", "developer-tools"], "enriched": true, "function": ["parser", "web-scraping", "http-client", "cli"], "health_score": 10, "homepage": null, "language": "Python", "license": null, "license_family": "other", "maturity": "abandoned", "member_repos": ["ckreibich/scholar.py"], "name": "ckreibich/scholar.py", "platform": ["python", "cli", "cross-platform"], "pushed_at": "2026-07-14T02:41:09+00:00", "repo": "ckreibich/scholar.py", "stars": 2175, "tags": ["google-scholar", "scraper", "bibtex", "citation-export", "academic-search", "archived", "search", "command-line"], "topics": [], "urls": [], "use_cases": ["scrape google scholar search results programmatically", "get citation counts for papers in python", "export google scholar results as bibtex", "find pdf links for academic publications", "query google scholar from the command line", "track citations of a specific article by cluster id"], "what_it_is": "A Python module that queries and parses Google Scholar search results, extracting publication metadata, citation counts, PDF links, and BibTeX/EndNote exports. It can be used as a library or invoked as a command-line tool that outputs CSV, plain text, or citation formats.", "when_to_avoid": ["you need a maintained tool - the repo is archived and scraping likely breaks", "you need high query volumes - the author refuses to bypass Google's rate limits", "you need a sanctioned API rather than HTML scraping"], "when_to_choose": ["you need a simple scriptable way to pull Google Scholar metadata", "you want citation export formats like BibTeX or EndNote", "you prefer a lightweight library plus CLI in one package"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/scholarpy", "repo": "ckreibich/scholar.py", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:22.170617+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:48:55.318780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae7b21e2d0ab422d6daaee0b7181af2d9d73abbd259de8a78e1031ae30e01318", "fetched_at": "2026-08-28T04:06:22.170617+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ckreibich/scholar.py"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:22.170617+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:48:55.318780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae7b21e2d0ab422d6daaee0b7181af2d9d73abbd259de8a78e1031ae30e01318", "fetched_at": "2026-08-28T04:06:22.170617+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ckreibich/scholar.py"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:48:55.318780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae7b21e2d0ab422d6daaee0b7181af2d9d73abbd259de8a78e1031ae30e01318", "fetched_at": "2026-08-28T04:06:22.170617+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ckreibich/scholar.py"}], "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:06:22.170617+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:22.170617+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:22.170617+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:48:55.318780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae7b21e2d0ab422d6daaee0b7181af2d9d73abbd259de8a78e1031ae30e01318", "fetched_at": "2026-08-28T04:06:22.170617+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ckreibich/scholar.py"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:22.170617+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:22.170617+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:48:55.318780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae7b21e2d0ab422d6daaee0b7181af2d9d73abbd259de8a78e1031ae30e01318", "fetched_at": "2026-08-28T04:06:22.170617+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ckreibich/scholar.py"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:22.170617+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:22.170617+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:22.170617+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:48:55.318780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae7b21e2d0ab422d6daaee0b7181af2d9d73abbd259de8a78e1031ae30e01318", "fetched_at": "2026-08-28T04:06:22.170617+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ckreibich/scholar.py"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:22.170617+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:22.170617+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:48:55.318780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae7b21e2d0ab422d6daaee0b7181af2d9d73abbd259de8a78e1031ae30e01318", "fetched_at": "2026-08-28T04:06:22.170617+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ckreibich/scholar.py"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:48:55.318780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae7b21e2d0ab422d6daaee0b7181af2d9d73abbd259de8a78e1031ae30e01318", "fetched_at": "2026-08-28T04:06:22.170617+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ckreibich/scholar.py"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:48:55.318780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae7b21e2d0ab422d6daaee0b7181af2d9d73abbd259de8a78e1031ae30e01318", "fetched_at": "2026-08-28T04:06:22.170617+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ckreibich/scholar.py"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:48:55.318780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ae7b21e2d0ab422d6daaee0b7181af2d9d73abbd259de8a78e1031ae30e01318", "fetched_at": "2026-08-28T04:06:22.170617+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ckreibich/scholar.py"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 92, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "archived", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4683, "days_push": 50, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}