{"adoption": {"forks": 401, "observed_at": "2026-08-28T04:04:13.238515+00:00", "stars": 1277}, "canonical_url": "https://ross.abutalabs.com/products/gd-utils", "card": {"archived": false, "artifact_type": "application", "description": "Google Drive 百宝箱", "domain": ["files", "self-hosted", "developer-tools"], "enriched": true, "function": ["cli", "web-framework", "chatbot", "file-system", "workflow-automation"], "health_score": 20, "homepage": null, "language": "HTML", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["iwestlin/gd-utils"], "name": "iwestlin/gd-utils", "platform": ["cli", "self-hosted"], "pushed_at": "2023-03-05T02:43:49+00:00", "repo": "iwestlin/gd-utils", "stars": 1277, "tags": ["google-drive", "telegram-bot", "file-copy", "service-account", "cloud-storage", "automation", "nodejs", "docker", "web-server"], "topics": [], "urls": [], "use_cases": ["copy a shared google drive folder to my own drive", "count files in a google drive shared folder", "manage google drive files via telegram bot", "transfer files between google drive accounts", "batch copy google drive files with service accounts"], "what_it_is": "A Google Drive utility toolbox that copies, counts, and manages files across Drive folders and shared drives, usable via CLI, web interface, or Telegram bot. It supports Service Account and personal account configuration, with Docker and Colab deployment options.", "when_to_avoid": ["you need a general-purpose cloud storage client for providers other than Google Drive", "you need a maintained project with a license and active support", "you need i18n/multilingual support out of the box"], "when_to_choose": ["you need to copy or count large Google Drive folder trees", "you want a self-hosted Drive tool with a Telegram bot interface", "you have service accounts to parallelize Drive operations"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/gd-utils", "repo": "iwestlin/gd-utils", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.238515+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T05:02:50.065161+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ad1178733fdaa64345cd8b7e7facc545029d7a634d34af19486d3936dce627b0", "fetched_at": "2026-08-28T04:04:13.238515+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iwestlin/gd-utils"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.238515+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T05:02:50.065161+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ad1178733fdaa64345cd8b7e7facc545029d7a634d34af19486d3936dce627b0", "fetched_at": "2026-08-28T04:04:13.238515+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iwestlin/gd-utils"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T05:02:50.065161+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ad1178733fdaa64345cd8b7e7facc545029d7a634d34af19486d3936dce627b0", "fetched_at": "2026-08-28T04:04:13.238515+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iwestlin/gd-utils"}], "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:04:13.238515+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.238515+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.238515+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T05:02:50.065161+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ad1178733fdaa64345cd8b7e7facc545029d7a634d34af19486d3936dce627b0", "fetched_at": "2026-08-28T04:04:13.238515+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iwestlin/gd-utils"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.238515+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.238515+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T05:02:50.065161+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ad1178733fdaa64345cd8b7e7facc545029d7a634d34af19486d3936dce627b0", "fetched_at": "2026-08-28T04:04:13.238515+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iwestlin/gd-utils"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.238515+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.238515+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.238515+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T05:02:50.065161+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ad1178733fdaa64345cd8b7e7facc545029d7a634d34af19486d3936dce627b0", "fetched_at": "2026-08-28T04:04:13.238515+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iwestlin/gd-utils"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.238515+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.238515+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T05:02:50.065161+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ad1178733fdaa64345cd8b7e7facc545029d7a634d34af19486d3936dce627b0", "fetched_at": "2026-08-28T04:04:13.238515+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iwestlin/gd-utils"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T05:02:50.065161+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ad1178733fdaa64345cd8b7e7facc545029d7a634d34af19486d3936dce627b0", "fetched_at": "2026-08-28T04:04:13.238515+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iwestlin/gd-utils"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T05:02:50.065161+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ad1178733fdaa64345cd8b7e7facc545029d7a634d34af19486d3936dce627b0", "fetched_at": "2026-08-28T04:04:13.238515+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iwestlin/gd-utils"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T05:02:50.065161+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ad1178733fdaa64345cd8b7e7facc545029d7a634d34af19486d3936dce627b0", "fetched_at": "2026-08-28T04:04:13.238515+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iwestlin/gd-utils"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2258, "days_push": 1277, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}