NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2257 most downloaded on PyPI
Google Drive Public File/Folder Downloader
Last release 6 days ago
29 Sep 2026
Ships unpredictably
gaps range from 9 days to 1.7 years
Some releases are documented
notes for 25 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
101 releases · first in 2015
Support Google Drive file URLs ending in /preview or without a /view or /edit suffix.
/preview or without a /view or /edit suffix. (#532)Optional cancellation events for download() and cached_download() interrupt stalled response reads and download waits without shortening network timeo
download() and cached_download() interrupt stalled response reads and download waits without shortening network timeouts, raising DownloadCancelled while preserving partial-file cleanup. (#525)--speed value now reports the accepted units instead of an internal function name. (#527)importlib is no longer exported from the gdown package; it was listed in __all__ by accident. (#526)One column per quarter.
Add a secretstorage installation extra for importing Chromium cookies from GNOME Keyring with pip install 'gdown[secretstorage]' or uvx --from 'gdown[
secretstorage installation extra for importing Chromium cookies from GNOME Keyring with pip install 'gdown[secretstorage]' or uvx --from 'gdown[secretstorage]' gdown. (#505)download(), download_folder(), and cached_download() accept a requests-style timeout, exposed on the command line as --timeout SECONDS, so a stalled server no longer blocks forever. (#510)--retries N and Python retries=N for automatic recovery of interrupted file and folder downloads, with bounded backoff and validated byte-range resume; --continue still controls reuse of earlier downloads. (#517)cached_download() verifies hash while streaming instead of reading the finished file back from disk. (#512)--timeout as a timeout instead of asking to file an issue. (#513)Add --cookies-from-browser BROWSER to download as your signed-in Google account using cookies read straight from a local browser, and --cookies FILE t
--cookies-from-browser BROWSER to download as your signed-in Google account using cookies read straight from a local browser, and --cookies FILE to use a cookies file other than ~/.cache/gdown/cookies.txt. The cookies file is now written owner-only and keeps session cookies. (#494)--folder necessary only for ambiguous bare IDs. (#496)--json export paths and preserve export extensions for dotted Google-native filenames. (#503)Fixed downloads leaking HTTP sessions, progress bars, or output files when an exception interrupted a file or folder download.
extractall, so ZIP and tar results use native path separators consistently. (#487)This release adds a new --json flag for inspecting Google Drive file and folder contents without downloading them.
This release adds a new --json flag for inspecting Google Drive file and folder contents without downloading them.
--json flag lists the file or folder contents as a JSON array on stdout instead of downloading, so you can resolve filenames and IDs before fetching anything. It is in beta and its output format may change in a future release.Add a --json flag that prints file or folder contents as a JSON array of {"url", "path"} entries instead of downloading. Paths use POSIX separators on all platforms, and the flag cannot be combined with -O/--output. (#460, #463)
# Resolve a single file's name without downloading it
filename=$(gdown "$url" --json | jq -r '.[0].path')
# List every file in a folder
gdown https://drive.google.com/drive/folders/FOLDER_ID --folder --jsonAdd a skip_download parameter to download() that resolves the target filename and ID without fetching the file, returning a GoogleDriveFileToDownload. (#463)
--json now prints a one-time beta warning to stderr, which --quiet suppresses. (#465)
--json output for folder downloads as an array of URL and path records. (#460)--json to resolve single-file URLs and filenames without downloading the file body. (#463)--json as beta and added a warning that can be suppressed with --quiet. (#465)Path traversal vulnerability fixed in extractall() ( GHSA-76hw-p97h-883f )
A lot has changed since v5.2.1 back in January. 33 pull requests (109 commits) went into this release, touching nearly every part of the codebase.
gdown --folder / download_folder() now supports folders with more than 50 filesdownload() raises DownloadError on failure instead of returning Noneprogress parameter in download()extractall() (GHSA-76hw-p97h-883f)Most users should be able to upgrade without issues. The one change that will likely need code updates is the switch from returning None to raising DownloadError on failure.
download() and download_folder() now raise DownloadError instead of returning None (#451)
Previously, download() and download_folder() returned None when a download failed. Now, they raise DownloadError (or its subclass FileURLRetrievalError).
If your code looks like this:
output = gdown.download(url, output="file.txt")
if output is None:
print("Download failed")Change it to:
try:
output = gdown.download(url, output="file.txt")
except gdown.DownloadError as e:
print(f"Download failed: {e}")fuzzy parameter and --fuzzy CLI flag removed (#455)
Previously, you needed fuzzy=True (or --fuzzy) to download from Google Drive share links like https://drive.google.com/file/d/FILE_ID/view. gdown now always extracts the file ID from any Google Drive URL format. Just pass the URL directly.
--remaining-ok flag and FolderContentsMaximumLimitError removed (#453)
Folder downloads used to be limited to 50 files due to a Google Drive API constraint, and --remaining-ok let you proceed with a partial download. gdown now uses the embeddedfolderview endpoint, which has no file count limit. The flag and exception class are no longer needed.
md5 parameter removed from cached_download() (#450)
The md5 parameter was deprecated in v5. Use the hash parameter instead:
# Before
gdown.cached_download(url, md5="abc123")
# After
gdown.cached_download(url, hash="md5:abc123")--id CLI flag, md5sum(), and assert_md5sum() removed (#448, #449)
These were deprecated in v5. Use gdown.parse_url() for URL parsing and hashlib for checksum verification.
Python 3.8 and 3.9 are no longer supported (#423)
gdown now requires Python 3.10 or later. Python 3.10 through 3.14 are tested in CI.
Arbitrary file write via path traversal in extractall() (GHSA-76hw-p97h-883f)
gdown.extractall() now validates that archive members stay within the target directory, preventing zip or tar archives from writing files outside the extraction path via ../ traversal, absolute paths, or symlinks. On Python 3.12+, extraction uses the data filter. (#445, #446, #447)
progress parameter in download() for hooking into download progress (#427)embeddedfolderview endpoint (#453)None instead of False from parse_url() for non-Google-Drive URLs (#434)download_folder() (#444)See the GitHub Releases page for changelogs of v6.0.0 and earlier.
Nothing published for this version
Fix path traversal vulnerability in extractall() that allowed zip/tar archives with ../ entries to write files outside the target directory ( GHSA-76h…
cached_download: Verify file hash before moving to final location instead of after
Feature: preserve GDrive's last modified time when downloading #351 (Thanks @moulins )
Enable python -m gdown <URL> by renaming cli.py to __main__.py #306
python -m gdown <URL> by renaming cli.py to __main__.py #306md5 with hash in gdown.cached_download to support various hash algorithm #311gdown.download() customizable #312skip_download option to gdown.download_folder to return the list of files without download #317 (Thanks @o-laurent)ci.yml to test___main__.py #307Skip process only for gdrive files by breaking early #302 , Thanks @hungpham3112
Use MozillaCookieJar instead of json to save cookies #300 , Thanks @7x11x13
assert_md5sum function #298Nothing published for this version
_NOTE: Gdown was down due to the Google Drive's change on User-Agent. Now it should be back to normal._
NOTE: Gdown was down due to the Google Drive's change on User-Agent. Now it should be back to normal.
If you find this project useful, please consider sponsoring its development.
<details> <summary>Uncategorized</summary>
</details>
If you find this project useful, please consider sponsoring its development.
Support Google Docs, Spreadsheets, and Slides with export format
% gdown https://docs.google.com/document/d/1TFYNzuZJTgNGzGmjraZ58ZVOh9_YoKeBnU-opWgXQL4/edit#heading=h.9rak0iw3abvl --fuzzy --format pdf
Downloading...
From (uriginal): https://drive.google.com/uc?id=1TFYNzuZJTgNGzGmjraZ58ZVOh9_YoKeBnU-opWgXQL4
From (redirected): https://docs.google.com/document/d/1TFYNzuZJTgNGzGmjraZ58ZVOh9_YoKeBnU-opWgXQL4/export?format=pdf
To: /Users/wkentaro/Documents/gdown/gdown.docx.pdf
26.0kB [00:00, 40.7MB/s]
% gdown https://docs.google.com/spreadsheets/d/1h6wQX7ATSJDOSWFEjHPmv_nukJzZD_zZ30Jvy6XNiTE/edit#gid=0 --fuzzy --format pdf
Downloading...
From (uriginal): https://drive.google.com/uc?id=1h6wQX7ATSJDOSWFEjHPmv_nukJzZD_zZ30Jvy6XNiTE
From (redirected): https://docs.google.com/spreadsheets/d/1h6wQX7ATSJDOSWFEjHPmv_nukJzZD_zZ30Jvy6XNiTE/export?format=pdf
To: /Users/wkentaro/Documents/gdown/gdown.xlsx.pdf
17.8kB [00:00, 24.2MB/s]
% gdown https://docs.google.com/presentation/d/13AhW1Z1GYGaiTpJ0Pr2TTXoQivb6jx-a/edit#slide=id.p1 --fuzzy --format pdf
Downloading...
From (uriginal): https://drive.google.com/uc?id=13AhW1Z1GYGaiTpJ0Pr2TTXoQivb6jx-a
From (redirected): https://docs.google.com/presentation/d/13AhW1Z1GYGaiTpJ0Pr2TTXoQivb6jx-a/export?format=pdf
To: /Users/wkentaro/Documents/gdown/gdown.pptx.pdf
12.3kB [00:00, 19.2MB/s]
If you find this project useful, please consider sponsoring its development.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Support proxy in download_folder
Nothing published for this version
Nothing published for this version
Nothing published for this version
Resolve the issues in download_folder due to the language/region (e.g., Russia, UK, etc).
download_folder due to the language/region (e.g., Russia, UK, etc).Nothing published for this version
Nothing published for this version
Nothing published for this version
Fix unicode error in gdown.download_folder in https://github.com/wkentaro/gdown/pull/198
Full Changelog: https://github.com/wkentaro/gdown/compare/v4.5.0...v4.5.1
Fix ci.yml for many files in directory by @wkentaro in https://github.com/wkentaro/gdown/pull/193
Full Changelog: https://github.com/wkentaro/gdown/compare/v4.4.0...v4.5.0
Allow users to specify a file ID without --id
Fix the regression in v4.2.1 on Windows around tempfile.mktemp vs mkstemp. https://github.com/wkentaro/gdown/issues/153
tempfile.mktemp vs mkstemp. https://github.com/wkentaro/gdown/issues/153Mitigate PermissionError after many accesses to a particular file.
Mitigate PermissionError after many accesses to a particular file.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Gdown v4.1 now supports --folder option! You can download files in a folder on Google Drive.
Gdown v4.1 now supports --folder option!
You can download files in a folder on Google Drive.
gdown --folder https://drive.google.com/drive/folders/15uNXeRBIhVvZJIhL4yTw4IsStMhUaaxl
# gdown/gdown.pptx
# gdown/spam.txt
Nothing published for this version
Nothing published for this version
Gdown v4 now supports --fuzzy option! You can simply copy and paste the link from Get link on Google Drive.
Gdown v4 now supports --fuzzy option!
You can simply copy and paste the link from Get link on Google Drive.
Also, --continue option is added to resume downloading from a partially downloaded file.
Tips: run pip install -U gdown for upgrade.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →