🍺 BREW Explorer

← all formulae

gdown

brew install gdown v6.1.0 MIT

Google Drive Public File Downloader when Curl/Wget Fails

206
30-day installs · #2587
671
90-day · #2583
1.8k
365-day · #2933
5.3k
★ GitHub stars · updated 2mo ago

Runtime dependencies

GitHub topics

curl download downloader google-drive python wget

Links

Raw metadata
{
  "aliases": [],
  "alternatives": [],
  "build_dependencies": [],
  "categories": [],
  "caveats": null,
  "conflicts_with": [],
  "dependencies": [
    "certifi",
    "python@3.14"
  ],
  "deprecated": 0,
  "deprecation_reason": null,
  "desc": "Google Drive Public File Downloader when Curl/Wget Fails",
  "disable_reason": null,
  "disabled": 0,
  "enrichment_fetched_at": "2026-06-20T23:37:56+00:00",
  "first_seen": "2026-06-20T23:34:18+00:00",
  "full_name": "gdown",
  "github_default_branch": "main",
  "github_last_commit_at": "2026-06-10T23:24:48Z",
  "github_readme_excerpt": "\u003cdiv align=\"center\"\u003e\n\u003ch1\u003egdown\u003c/h1\u003e\n\n[![PyPI](https://img.shields.io/pypi/v/gdown.svg)](https://pypi.org/project/gdown/)\n[![Python](https://img.shields.io/pypi/pyversions/gdown.svg)](https://pypi.org/project/gdown/)\n[![Build](https://github.com/wkentaro/gdown/actions/workflows/test.yml/badge.svg)](https://github.com/wkentaro/gdown/actions/workflows/test.yml)\n[![License](https://img.shields.io/pypi/l/gdown.svg)](https://pypi.org/project/gdown/)\n\nGoogle Drive public file/folder downloader when curl/wget fails.\n\n\u003cimg src=\"https://github.com/wkentaro/gdown/raw/main/assets/cli.png\" width=\"80%\"\u003e\n\u003cimg src=\"https://github.com/wkentaro/gdown/raw/main/assets/python.png\" width=\"80%\"\u003e\n\u003c/div\u003e\n\n## Why?\n\nDownloading public files from Google Drive with curl or wget doesn\u0027t work \u2014\nGoogle serves a confirmation page for large files, and the URL formats are a mess.\n\ngdown gets around that:\n\n- Skips the virus-scan confirmation page so large downloads actually finish\n- Downloads folders recursively\n- Exports Google Docs/Sheets/Slides as PDF, DOCX, CSV, etc.\n- Resumes partial downloads with `--continue`\n- Also works with plain HTTP/HTTPS URLs as a curl/wget replacement\n\n## Install\n\nRequires Python 3.10 or later.\n\n```bash\npip install gdown\n```\n\nOr with [uv](https://docs.astral.sh/uv/):\n\n```bash\nuv tool install gdown\n```\n\n## Quick start\n\n```bash\n# Just paste a Google Drive URL\ngdown https://drive.google.com/uc?id=1l_5RK28JRL19wpT22B-DY9We3TVXnnQQ\n\n# Or copy-paste a share link directly\ngdown \u0027https://drive.google.com/file/d/0B9P1L--7Wd2vU3VUVlFnbTgtS2c/view?usp=sharing\u0027\n```\n\n## Usage\n\n### CLI\n\n#### Files\n\n```bash\n# Download by URL\ngdown https://drive.google.com/uc?id=1l_5RK28JRL19wpT22B-DY9We3TVXnnQQ\n\n# Download by file ID\ngdown 1l_5RK28JRL19wpT22B-DY9We3TVXnnQQ\n\n# Download from a share link\ngdown \u0027https://drive.google.com/file/d/0B9P1L--7Wd2vU3VUVlFnbTgtS2c/view?usp=sharing\u0027\n\n# Save to a specific path\ngdown https://drive.google.com/uc?id=0B9P1L--7Wd2vU3VUVlFnbTgtS2c -O /tmp/spam.txt\n\n# Reso",
  "github_repo": "wkentaro/gdown",
  "github_stars": 5308,
  "github_topics": [
    "curl",
    "download",
    "downloader",
    "google-drive",
    "python",
    "wget"
  ],
  "homepage": "https://github.com/wkentaro/gdown",
  "homepage_og_description": null,
  "homepage_og_image": null,
  "homepage_title": null,
  "installs_30d": 206,
  "installs_365d": 1836,
  "installs_90d": 671,
  "keg_only": 0,
  "keg_only_reason": null,
  "last_seen": "2026-06-20T23:34:18+00:00",
  "license": "MIT",
  "llm_generated_at": null,
  "llm_model": null,
  "name": "gdown",
  "oldnames": [],
  "one_liner": null,
  "optional_dependencies": [],
  "rank_30d": 2587,
  "rank_365d": 2933,
  "rank_90d": 2583,
  "raw_hash": "db010c7934a6954d",
  "recommended_dependencies": [],
  "revision": 0,
  "ruby_source_path": "Formula/g/gdown.rb",
  "tap": "homebrew/core",
  "test_dependencies": [],
  "uses_from_macos": [],
  "version_head": "HEAD",
  "version_stable": "6.1.0",
  "versioned_formulae": [],
  "why_use_this": null
}