{"id":21995153,"url":"https://github.com/redhataccess/duplicatephotomanager","last_synced_at":"2026-05-17T03:43:38.488Z","repository":{"id":77524096,"uuid":"98751893","full_name":"redhataccess/duplicatephotomanager","owner":"redhataccess","description":"This is a project to find and safely delete duplicate photos.","archived":false,"fork":false,"pushed_at":"2017-08-03T05:22:39.000Z","size":43,"stargazers_count":0,"open_issues_count":18,"forks_count":0,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-06-01T05:15:46.529Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/redhataccess.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-07-29T18:33:02.000Z","updated_at":"2017-12-20T12:55:31.000Z","dependencies_parsed_at":"2023-09-06T01:37:30.196Z","dependency_job_id":null,"html_url":"https://github.com/redhataccess/duplicatephotomanager","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/redhataccess/duplicatephotomanager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhataccess%2Fduplicatephotomanager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhataccess%2Fduplicatephotomanager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhataccess%2Fduplicatephotomanager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhataccess%2Fduplicatephotomanager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redhataccess","download_url":"https://codeload.github.com/redhataccess/duplicatephotomanager/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhataccess%2Fduplicatephotomanager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280370896,"owners_count":26319317,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-22T02:00:06.515Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-29T21:12:31.589Z","updated_at":"2025-10-22T02:56:22.593Z","avatar_url":"https://github.com/redhataccess.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# duplicatephotomanager\nThis is a project to find and safely delete duplicate photos.\nThere is currently an issue pending to make this work across platforms.\nDeveloped on linux.\n\nlast edited on 08.01.2017\n\n\nCurrently it implements a dhash and kbtree mechanism to store/find distances in a reduced representation of each photo.\n\nThis allows detection of slightly different images such as resized or lower resolution that is not found in an md5 comparison.\n\nReferences:\nhttp://tech.jetsetter.com/2017/03/21/duplicate-image-detection/\n\n\nSteps to run\n\n1. gather photos and directories of photos so they have a common directory root\n1. in another directory clone and cd into project\n1. pip install -r requirements.txt\n1. replace STATICFILES\\_DIR to include a fully qualified path to the \"root\" directory from first step\n1. replace pickle\\_tree\\_path, static\\_path, and dup\\_index\\_path in mysite/mysite/dupes/views.py with directories that make sense to you\n1. run the command `python manage.py runserver` from the mysite/mysite directory\n1. open a browser and go to http://127.0.0.1:8000/dupes/\n1. click on any files you want to delete on the current page\n1. click the delete button\n1. the image should be replaced by an icon indicating that it could not be loaded\n1. in a terminal, go to the 'root' photos directory that you set before and run find . -iname 'deleteME\\_\\*' and you should see the ones you deleted come back in the results\n1. to actually delete them, run find . -iname 'deleteME\\_\\*' | xargs rm -f\n1. to change the names back, run something like this example (linux):\n\n`find . -iname 'deleteME_*' | sed 's/ /\\\\ /g' | sed 's/\\(\\(.*\\)deleteME_\\(.*\\)\\)/ mv \\1 \\2\\3/g' | sh`\n\n\nThe resulting duplicate listings are paginated, so there is a small navigation link at the very bottom, but the app responds to arrow keys as well.\n\nIt is planned to create a preview page of images 'deleted' (renamed) and buttons to really delete them or undo (which will just remove the prepended 'deleteME\\_' from the file name.\n\n**Note: It may take significant amount of time to load the first time you load the page, depending on your system and the number of images.**\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredhataccess%2Fduplicatephotomanager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredhataccess%2Fduplicatephotomanager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredhataccess%2Fduplicatephotomanager/lists"}