Skip to content

Releases: tanaikech/goodls

v3.4.0

01 Jun 04:40

Choose a tag to compare

What's Changed in v3.4.0

  1. Enterprise Proxy & Network Resilience: Introduced --proxy (-p), --retry, and --retry-delay with exponential backoff for flawless execution behind firewalls and unstable connections.
  2. Docker & CI Compatibility: Completely resolved syscall.Stdin hanging issues in headless/non-interactive environments.
  3. Google Colab Support: Added native parsing and transparent downloading for colab.research.google.com/drive/ URLs.
  4. Indestructible Large File Scraper: Upgraded the Google Drive warning bypass with a 4-tier fallback system (including raw HTML regex matching) to combat unannounced DOM changes.
  5. Developer Tooling: Added --json (-j) for structured outputs and --verbose (-v) for deep HTTP diagnostics. (The CLI version flag was migrated to -V).
  6. MCP Schema Expansion: Autonomous AI agents can now dynamically supply proxy settings and retry counts via the download MCP tool.

v3.3.1

01 Jun 02:25

Choose a tag to compare

Release Notes - v3.3.1

Features & Improvements

  1. Native MCP Server Capabilities (mcp subcommand)
    goodls now functions as an autonomous tool for LLMs via the Model Context Protocol. Features seamless stdio JSON-RPC handshaking, strict prompt fallback controls, and robust capability discovery.

  2. Asynchronous Architecture & Ping Stabilization
    Rebuilt the MCP request loop using Goroutines and Mutex locks to support large file downloads without blocking system ping messages, completely fixing the connection closed timeout issues caused by aggressive clients.

  3. Intelligent Directory Creation
    MCP tool invocations targeting non-existent local paths automatically perform os.MkdirAll recursively to eliminate friction for AI agents.

  4. Shared Drives API Expansion
    Enhanced query logic natively enforces supportsAllDrives=true, ensuring flawless downloads from enterprise Google Workspace Shared Drives across all fetch behaviors.

v3.3.0

31 May 03:17

Choose a tag to compare

Release v3.3.0

Key Changes and Enhancements

🔄 Interactive and Non-Interactive Conflict Resolution System (--conflict, -cf)

We have introduced a customizable conflict resolution engine to manage situations when a file already exists in the destination folder. You can configure this using the new --conflict (or -cf) flag.

Supported strategies include:

  • prompt (Default in interactive terminals): Asks the user to choose an action from [s]kip, [o]verwrite, [n]ewer, [r]ename, or [a]bort. It automatically falls back to the rename strategy in non-interactive / pipeline environments.
  • skip: Skips downloading the file safely (legacy --skip or -s flags map to this automatically).
  • overwrite: Overwrites the existing local file (legacy --overwrite or -o flags map to this automatically).
  • newer: Overwrites the existing file only if the remote file's modification timestamp is newer than the local one. Otherwise, skips the download. If remote time is unavailable, it warns and falls back to rename.
  • rename: Automatically renames the file with a timestamp suffix (e.g. _YYYYMMDD_HHMMSS). If that also exists, it appends a numeric counter (e.g. _1, _2).

📁 Enhanced Directory Handling

Improved stability of concurrent folder downloads by reinforcing the directory-creation pipeline, resolving write conflicts during parallel execution.


Pre-compiled Binaries Included:

13 binaries are pre-compiled and attached to this release for the following environments:

  • macOS (Intel & Apple Silicon)
  • Linux (386, amd64, arm64, arm7, mips, mipsle)
  • FreeBSD (amd64, arm64)
  • Windows (386, amd64, arm64)

v3.2.2

27 May 07:16

Choose a tag to compare

Release v3.2.2 with updated dependencies to resolve security warnings.

v2.0.6

13 Jun 06:23

Choose a tag to compare

  • v2.0.6 (June 13, 2025)

    1. Rebuid by go1.24.4.

v2.0.5

10 Mar 08:12

Choose a tag to compare

  • v2.0.5 (March 10, 2023)

    1. From this version, when the API key is used, the large file is downloaded by the API key. Because the specification for downloading the shared large file is sometimes changed. When the API key is not used, the shared large file is downloaded by the current specification (v2.0.4). If the shared large file cannot be downloaded by the change of the specification on Google's side, please use the API key and test it again. The usage of goodls has not changed.

v2.0.4

09 Mar 08:07

Choose a tag to compare

  • v2.0.4 (March 9, 2023)

    1. From January 2024, it seems that the specification of the process for downloading a large shared file on Google Drive has been changed. So I updated goodls to reflect this. The usage of goodls has not changed. In the current stage, when a large share file is downloaded, it is required to click the following button.
    <form
      id="download-form"
      action="https://drive.usercontent.google.com/download"
      method="get"
    >
      <input
        type="submit"
        id="uc-download-link"
        class="goog-inline-block jfk-button jfk-button-action"
        value="このままダウンロード"
      />
      <input type="hidden" name="id" value="fileId" />
      <input type="hidden" name="export" value="download" />
      <input type="hidden" name="authuser" value="0" />
      <input type="hidden" name="confirm" value="t" />
      <input type="hidden" name="uuid" value="uuId" />
      <input type="hidden" name="at" value="some value" />
    </form>

    In this version, the URL obtained by this click is created, and the created URL is used for downloading it.

v2.0.3

05 Apr 01:44

Choose a tag to compare

  • v2.0.3 (April 5, 2023)

    1. Forgot to update the version number and modified it. And, built the sources with the latest version.

v2.0.2

24 Feb 05:47

Choose a tag to compare

  • v2.0.2 (February 24, 2023)

    1. Modified go.mod and go.sum.

v2.0.1

26 Feb 02:36

Choose a tag to compare

  • v2.0.1 (February 26, 2022)

    1. A bug for the resumable download was removed.