Google Photos Bulk Download Helper
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 helps you download multiple photos from Google Photos at once. Instead of manually clicking each photo to select it before downloading, the script provides a "Select All" button that selects all visible photos in the current view—albums, search results, or your entire library. It also offers date-range selection, so you can download photos from a specific time period. Once photos are selected, the script automatically detects the native "Download" button in the Google Photos toolbar and triggers it, starting the download of all selected photos. A progress indicator shows the status of the selection process, and a counter displays how many photos have been selected. The script works dynamically as you scroll and load more photos, and you can toggle auto-scroll to load all photos in the view before selection.
WHERE IT RUNS
The script runs on all Google Photos pages (photos.google.com). It works on album views, search results, and the main library view. 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 download helper" toggle enables or disables the script.
- Toggle "Auto-scroll to load all photos" to automatically scroll through the page to load all photos before selection.
- Click "Select All Photos" to select all visible photos in the current view.
- To select by date range, enter start and end dates (YYYY-MM-DD) and click "Select by Date Range."
- Click "Refresh thumbnails" to count how many photos are currently visible.
- Click "Trigger Download" to manually trigger the download of selected photos (the script does this automatically after selection).
The progress indicator shows the current status. After selection, the script triggers the download automatically.
TECHNICAL SECTION — REAL MECHANISM
The script detects Google Photos pages by checking the URL for photos.google.com. It finds photo thumbnails by scanning for elements with common Google Photos class names (.pRmglc, .ycWps, .D0ZQY, .qNL, .rR, .aX, .RWE8C, .khI7J, .Jziic, .ASyMW, .hEz, .fLnoJ, .f7mAF, .KfHjK, .kMStQ, .P9NMr, .QhVXc, .jMhM, .sV, .G4zKf, [role="gridcell"], [role="listitem"]) and by finding img elements with Google Photos image URLs. For each thumbnail, the script finds the clickable element (either a checkbox, selection button, or the thumbnail itself) and simulates a click to select it. For date-range selection, the script extracts the photo date from data-date attributes, data-timestamp attributes, or from the alt text of the image. The download is triggered by finding the toolbar's Download button using selectors like button[aria-label*="Download"], .download-button, .gDohZ, .wBAN8, and .B5bJP, and calling click() on it. The script uses a MutationObserver to watch for changes and re-scan thumbnails as new photos load.
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 and a progress indicator that provides visual feedback during selection. 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. Google Photos frequently updates its interface, which may break the selectors used to find thumbnails, selection buttons, and the download button. If the script stops working, please check for updates. Google Photos may limit the number of photos that can be downloaded in a single batch. For very large selections (hundreds or thousands of photos), you may need to download in smaller batches or use Google Takeout instead. The script simulates clicks on the page to select photos and trigger downloads—it does not bypass Google's rate limits or download limits. 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.