Skip to content

mtalcott/google-photos-deduper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

374 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Google Photos Deduper

CI Badge

A Chrome extension that finds and removes duplicate photos from your Google Photos library.

Uses Google Photos Toolkit (GPTK) to access your library via Google Photos' web interface. Built with Plasmo, MediaPipe, React, and MUI.

Demo

Demo

Install

⬇ Download latest release

  1. Unzip to a permanent folder (don't delete it — Chrome needs it to stay there)
  2. Open chrome://extensions → enable Developer mode (toggle, top-right)
  3. Click Load unpacked → select the unzipped folder
  4. Pin the extension icon in your toolbar for easy access

Usage

  1. Open Google Photos in Chrome with the extension installed
  2. Click the extension icon → Open Deduper
  3. Click Scan Library - the extension fetches your media items and uses MediaPipe image embeddings locally to find visually identical photos
  4. Review the duplicate groups, select which to keep, and click Move to Trash

No OAuth setup. No Google Cloud project. No data leaves your browser.

Development

Setup

Prerequisites: Google Chrome, Node.js 24

git clone https://github.com/mtalcott/google-photos-deduper.git
cd google-photos-deduper
git submodule update --init --recursive
npm install
npm run dev  # builds into build/chrome-mv3-dev/

Load in Chrome: chrome://extensions → enable Developer modeLoad unpacked → select build/chrome-mv3-dev/.

Commands

# Start the Plasmo dev server (rebuilds on file changes)
npm run dev

# Build the Chrome extension (builds into build/chrome-mv3-prod/)
npm run build

# Run unit and integration tests
npm test

# Run full E2E tests (requires Chrome with remote debugging — see below)
npm run test:e2e

Full E2E Tests

Full E2E tests connect to a running Chrome instance via the Chrome DevTools Protocol (CDP). Start Chrome with remote debugging before running:

macOS:

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
  --remote-debugging-port=9222 \
  --user-data-dir="$HOME/chrome-debug"

Windows WSL:

"/mnt/c/Program Files/Google/Chrome/Application/chrome.exe" \
  --remote-debugging-port=9222 \
  --user-data-dir="C:\Users\<you>\Chrome Profiles\chrome-debug"

Then run: npm run test:e2e

Motivation

Google deprecated the Photos Library API's write access in 2025, and duplicate detection has never been a built-in Google Photos feature. This extension uses @xob0t's Google Photos Toolkit (GPTK) — an open-source wrapper around Google Photos' undocumented web API — to access your library without OAuth, and runs MediaPipe's MobileNet V3 image embedder locally to find visually identical photos.

Support

Found a bug or have a feature request? Open an issue.

Have questions? Post on the discussions page.

Say Thanks

If you found this project useful, give it a star!

About

An unofficial Chrome extension that finds and removes duplicate photos from your Google Photos library

Topics

Resources

License

Stars

Watchers

Forks

Contributors