If this extension saved you time and helped organize your photos, consider supporting its ongoing development. It's independently maintained, and your contribution helps me sustain future improvements.
About the extension
EXIF Metadata photo merger and organiser — version 5.1.0. What it does, why use it, and how.
The problem
When you download your library from Google Photos using Google Takeout, the result is a large export that's difficult to use as-is:
- Many zip files — The export is split into numerous archives, requiring you to extract and manage many ZIPs.
- Separated metadata — Photo metadata (dates, GPS, descriptions, albums) are separated from images and stored as JSON files.
- Disorganized content — Files are randomly distributed within ZIPs, making it hard to find, organize, or back up your photos.
This extension addresses these issues by extracting the ZIPs, merging metadata back into your media files, and organizing everything into a clean Lake and Processed folder — entirely in your browser, on your machine.
What the extension does
EXIF Metadata photo merger and organiser (Chrome extension) runs entirely in your browser — privacy first, no cloud upload; your files never leave your computer. No account required, works offline after install, no subscription. It:
- Extracts Google Takeout ZIP files into a single Lake folder under your chosen output path.
- Merges metadata into image files (EXIF: dates, GPS, Google Photos URL), so data is stored directly inside the images.
- Copies videos and unmatched media into
Processed/.
- Writes
file_map.json (origin of each file) and report.json / report.csv.
- World map linking to photos — Optional: generate a world map of all photo locations with an active link to each photo.
- Accumulated data (incremental runs) — You can run Start Processing again with new ZIPs or media: new content is added to the existing Lake and Processed without overwriting. Reports, summary, and map data are merged cumulatively across runs. The summary report shows a broad view: merged/transferred counts, orphan media, albums rebuilt, and more. Content already in Processed is never moved back to Lake.
- Lets you choose input and output folders via the browser’s folder picker; no arbitrary disk access.
Advantages
- Runs in the browser — No desktop app to install; just load the extension in Chrome.
- No cloud upload — Nothing is uploaded; all processing is local using the File System Access API.
- Privacy first — Your photos and metadata never leave your computer.
- No account required — Use the extension without signing up anywhere.
- Works offline — No internet needed after you have the extension and your Takeout files.
- No subscription — Voluntary support option; no recurring fees.
- Transparent — Start Processing does the work and generates reports you can review.
How to use the extension
1. Get your Google Takeout
In Google Photos, use "Download your data" (Google Takeout) and select Photos. Download the ZIP files into a folder on your computer.
2. Get and load the extension
Add to Chrome from the Chrome Web Store. Direct zip download from this site is currently unavailable — please use the store to install the extension.
3. Select your input folder
Choose your input folder: the folder that contains your Takeout ZIPs (or already extracted files). The extension uses this same folder as the default output folder — so Lake/, Processed/, and the report files are created there. The selected folder's contents (including zip files) are shown in the list below. For most users, picking this one folder is enough; then click Start Processing.
4. Use Advanced options (optional)
If the default "input folder = output folder" and default options work for you, you can leave Advanced options closed and go straight to Start Processing. Otherwise, Advanced options are grouped into four sections:
- 1. Select output folder — Choose a different folder for
Lake/, Processed/, and reports (instead of using the input folder).
- 2. File extraction — Extract zip files into Lake; optionally Only extract zip files to lake with no further processing (stops after extraction; use for “extract first, then process”); Delete zip and other content after extract.
- 3. Merge and output — Delete originals after merge; Put all in one folder (uncheck to organise by year and Google albums); Transfer unmatched media to Processed (uncheck to keep in Lake for later matching); Verbose (log each file). Sections 3 and 4 are disabled when “Only extract…” is on.
- 4. Mapping — World map: photo locations on OpenStreetMap with links to photos; Create Google albums maps (uncheck to copy duplicates as well).
- Media without a matched JSON file — By default, such media stay in Lake so that on a second or third Start Processing run their JSON may be found. If this is your final batch, enable Transfer unmatched media to Processed in section 3 to distribute those files into
Processed/YYYY.
5. Start Processing
Click Start Processing. The app will extract ZIPs and move all media content and metadata files to the Lake folder. Then it will match and merge metadata into your images, write merged and transferred files to Processed/, and generate reports. The Summary panel shows an overview when done (merged/transferred, orphans, albums, etc.).
Duplicates. Duplicate detection is always on. The extension keeps the best copy (e.g. by resolution or file size) in Processed/YYYY and moves other copies to Processed/YYYY/Duplicates/ — or to Processed/Duplicates/ if you use “Put all in one folder” in Advanced options. Albums still point to the kept photo.
6. Review the report
Check the Live Activity report, the Summary panel in the extension, and the report.json / report.csv / summary_report.json in your output folder.
Map linking to photos
When you enable World map: photo locations on OpenStreetMap with links to photos in Advanced options (it is on by default) and run Start Processing, the extension creates Processed/map.html and Processed/map_data.json. Open the HTML file in your browser to see a world map (OpenStreetMap) with a marker for each photo that has location data. Each marker links to the photo file. No account or API key required.
How to use the map
- In the extension, open Advanced options and ensure World map: photo locations on OpenStreetMap with links to photos is checked. Click Start Processing.
- When processing finishes, go to your output folder and open the Processed folder. Double‑click
map.html (or right‑click → Open with → your browser) to open the map.
- Zoom and pan the map as usual (scroll to zoom, drag to pan). Click a marker to open a popup with the photo filename; click the link in the popup to open that photo file. The link opens the image in the same folder structure (e.g.
Processed/2024/photo.jpg), so keep the Processed folder in place when browsing the map.
Recommendations
- Extract first, then process — For large exports, you can extract all ZIPs into Lake first and run processing later. In Advanced options, enable Only extract zip files to lake with no further processing for the first run; then run Start Processing again (without that option) to index, merge, and organize. This splits the work and can make it easier to resume if the browser is closed.
- Already extracted folders — The extension works with folders that you have already unzipped (e.g. with 7-Zip, WinRAR, or your OS's extractor). Point the extension at the extracted folder as your input folder; it will merge metadata and organize without re-extracting, which can save time for large exports.
- Do not delete originals until you’re sure — Keep your original Takeout downloads (ZIPs or extracted files) until you have verified that everything is in place. Only then consider deleting them or turning on “Delete originals after merge” in Advanced options.
- Sanity-check the merge — After Start Processing, open a sample of merged images (e.g. from
Processed/) and confirm dates, location, and EXIF look correct. Spot-check a few from different folders or time periods before relying on the full export.
Limitations
- Video metadata is not merged — Videos are copied to Processed, but metadata is not injected into video files.
- Chrome/Edge only — Uses the File System Access API (Chrome and compatible browsers).
Support & Feedback
If you have some ideas, remarks, or you have found an issue, I'd love to hear from you. Please feel free to contact me: exif.photo.merger@gmail.com
Thank you.
← Back to main page