Gmail Attachment Bulk Downloader
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
This script adds a "Download All" button to Gmail messages that have attachments, allowing you to download all attachments in one click. When you open an email with attachments, the script scans the message for all attachment links and displays a "Download All" button in the email toolbar. You can select or deselect individual attachments using a dropdown list, so you can choose which files to download. When you click "Download All," the script opens each selected attachment's download link sequentially with a configurable delay between downloads, helping you avoid triggering browser download limits. A progress indicator shows the status of the download process. The script updates automatically as you navigate between emails.
WHERE IT RUNS
The script runs on Gmail (mail.google.com). It works on the message view when you open individual emails. It supports both desktop and mobile views.
HOW TO USE
After installation, the settings panel appears on the left side of the screen with the gear emoji (⚙️). Open the panel to configure the script:
- The "Enable bulk downloader" toggle enables or disables the script.
- Adjust the "Delay between downloads (ms)" to control the time between opening each download link.
- Toggle "Select all attachments by default" to control whether all attachments are selected initially.
- Click "Refresh current email" to manually re-scan the message.
When you open an email with attachments, a "Download All" button appears in the toolbar. Click the "List" button to see a list of attachments with checkboxes. Select the files you want to download, then click "Download All." The script will open each selected attachment link in sequence with your configured delay.
TECHNICAL SECTION — REAL MECHANISM
The script detects Gmail message views by looking for email body containers such as .adn, .a3s, .msg-body, .gmail-body, and .ii.gt. It finds attachments by scanning for elements with selectors like .a3s .aVY .aQJ, .aQJ, .aQH, .attachment, and .attachments, and by checking for download links with file extensions. Each attachment's filename is extracted from the element's text content, and the download URL is captured from the href attribute. Attachments are stored in an array with a selected flag. The toolbar is located using selectors like .adn .ads and .gmail-actions. The "Download All" button and attachment list are injected into the toolbar. The download process uses GM_openInTab to open each selected attachment URL in a new tab, triggering the browser's download handler. A setTimeout loop spaces out the downloads based on the configured delay. The progress indicator is updated using textContent. A MutationObserver watches for DOM changes to detect when the user navigates to a different email and re-triggers the attachment scan.
THE PANEL
The settings panel is built with BotGentz's BGPanel component. It is draggable via its header, allowing you to reposition it anywhere on the screen. The panel snaps to the left edge by default but can be moved freely. Click the gear emoji to collapse the panel into a small bubble, and click the bubble to expand it again. The panel remembers its position per page session. Press the Escape key to quickly close or minimize the panel. The panel includes a status flash bar that provides visual feedback when settings are changed or actions are performed. All settings save automatically via GM_setValue.
PLEASE NOTE
This script requires the free BotGentz browser extension to run. It does not function as a standalone Chrome extension and does not use chrome.* APIs. Gmail frequently updates its interface, which may affect the selectors used to find attachments and the toolbar. If the Download All button stops appearing, please check for script updates. Opening multiple download links in new tabs may be blocked by some browsers' popup blockers; you may need to allow popups for Gmail. The script does not download attachments directly—it opens the download links, and the browser handles the actual download. The script stores only your preferences via GM_setValue. No data is sent externally—all data is stored locally in your browser. The script never reads or writes password fields, hidden inputs, or file inputs. All DOM operations use safe methods (style properties, textContent, appendChild) and never use innerHTML.