# Duplicate prevention: Notify observers if their image checksums match others already uploaded

**URL:** <https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258>\
**Category:** Feature Requests\
**Tags:** web, mobile-app\
**Created:** [February 14, 2019, 6:26am UTC](https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258 "2019-02-14T06:26:10Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![j-k](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/j-k/32/3558_2.png) [@j-k](https://forum.inaturalist.org/u/j-k)\
**Post date:** [February 14, 2019, 6:26am UTC](https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258/1 "2019-02-14T06:26:11Z")

</div>

Duplicates are a major problem for both observers, identifiers and project managers.

Every image on the site has a checksum.  
Every image a user tries to upload also has a checksum.

If a user is trying to upload a photo which has an identical checksum to an image which is already on the site, you could simply ask the user to double check whether they’re already uploaded this image.

This could prevent a whole lot of unnecessary duplicates.

---

<div class="post-metadata">

**Author:** ![friel](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/friel/32/39707_2.png) [@friel](https://forum.inaturalist.org/u/friel)\
**Post date:** [February 14, 2019, 10:01am UTC](https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258/2 "2019-02-14T10:01:38Z")

</div>

Sounds like a great idea, as long as it is just a notification, and can be ignored when needed. For example there are sometimes instances where I have used the same exact image for multiple observations of different organisms (e.g., an insect on a flower).

---

<div class="post-metadata">

**Author:** ![mira\_l\_b](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/mira_l_b/32/44_2.png) [@mira\_l\_b](https://forum.inaturalist.org/u/mira_l_b)\
**Post date:** [February 14, 2019, 2:23pm UTC](https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258/3 "2019-02-14T14:23:19Z")

</div>

Hey there, not necessarily advocating that you combine threads because they’re a little different but just wanted to make sure you were aware of this somewhat parallel, definitely relevant, discussion/ feature request thread: [https://forum.inaturalist.org/t/create-a-way-to-flag-duplicate-observations-and-remove-rg-status-from-the-extras/201](https://forum.inaturalist.org/t/create-a-way-to-flag-duplicate-observations-and-remove-rg-status-from-the-extras/201)

🙂

---

<div class="post-metadata">

**Author:** ![j-k](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/j-k/32/3558_2.png) [@j-k](https://forum.inaturalist.org/u/j-k)\
**Post date:** [February 15, 2019, 6:24am UTC](https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258/4 "2019-02-15T06:24:47Z")

</div>

Hi Mira, thanks for letting me know about that thread. I agree, it is different though.

If would be good if we could CATEGORISE the TOPICS within the feature request part of this forum!

---

<div class="post-metadata">

**Author:** ![tiwane](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/tiwane/32/54612_2.png) [@tiwane](https://forum.inaturalist.org/u/tiwane)\
**Post date:** [February 21, 2019, 12:19am UTC](https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258/5 "2019-02-21T00:19:28Z")

</div>

> [@j-k](#):
>
> If would be good if we could CATEGORISE the TOPICS within the feature request part of this forum!

If you have feedback about the forum, definitely start a topic at [https://forum.inaturalist.org/c/site-feedback](https://forum.inaturalist.org/c/site-feedback)

---

<div class="post-metadata">

**Author:** ![tiwane](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/tiwane/32/54612_2.png) [@tiwane](https://forum.inaturalist.org/u/tiwane)\
**Post date:** [March 6, 2019, 11:36pm UTC](https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258/6 "2019-03-06T23:36:18Z")

</div>

We’ve written a spec for the team to review and see if this is feasible, so I’m going to close this topic.

---

<div class="post-metadata">

**Author:** ![tiwane](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/tiwane/32/54612_2.png) [@tiwane](https://forum.inaturalist.org/u/tiwane)\
**Post date:** [March 6, 2019, 11:36pm UTC](https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258/7 "2019-03-06T23:36:21Z")

</div>



---

<div class="post-metadata">

**Author:** ![bouteloua](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/bouteloua/32/1180_2.png) [@bouteloua](https://forum.inaturalist.org/u/bouteloua)\
**Post date:** [July 5, 2019, 6:13pm UTC](https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258/8 "2019-07-05T18:13:32Z")

</div>



---

<div class="post-metadata">

**Author:** ![j-k](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/j-k/32/3558_2.png) [@j-k](https://forum.inaturalist.org/u/j-k)\
**Post date:** [November 1, 2019, 3:58am UTC](https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258/9 "2019-11-01T03:58:33Z")

</div>

Has any progress been possible for this feature request?

---

<div class="post-metadata">

**Author:** ![tiwane](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/tiwane/32/54612_2.png) [@tiwane](https://forum.inaturalist.org/u/tiwane)\
**Post date:** [November 8, 2019, 3:36am UTC](https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258/10 "2019-11-08T03:36:19Z")

</div>

No, there hasn’t.

---

<div class="post-metadata">

**Author:** ![tiwane](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/tiwane/32/54612_2.png) [@tiwane](https://forum.inaturalist.org/u/tiwane)\
**Post date:** [December 11, 2019, 12:49am UTC](https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258/11 "2019-12-11T00:49:27Z")

</div>

8 posts were split to a new topic: [Duplicate observations by the same user on two different accounts?](https://forum.inaturalist.org/t/duplicate-observations-by-the-same-user-on-two-different-accounts/8576)

---

<div class="post-metadata">

**Author:** ![tiwane](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/tiwane/32/54612_2.png) [@tiwane](https://forum.inaturalist.org/u/tiwane)\
**Post date:** [December 11, 2019, 12:55am UTC](https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258/12 "2019-12-11T00:55:43Z")

</div>

A post was merged into an existing topic: [Duplicate observations by the same user on two different accounts?](https://forum.inaturalist.org/t/duplicate-observations-by-the-same-user-on-two-different-accounts/8576/12)

---

<div class="post-metadata">

**Author:** ![ahospers](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/ahospers/32/1483_2.png) [@ahospers](https://forum.inaturalist.org/u/ahospers)\
**Post date:** [October 25, 2020, 12:38pm UTC](https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258/13 "2020-10-25T12:38:45Z")

</div>

[https://www.mediawiki.org/wiki/Topic:Tk68mvtbbqwxnh98](https://www.mediawiki.org/wiki/Topic:Tk68mvtbbqwxnh98) On MediaWiki they do have duplicate checks too

SHA1 checksum [https://www.mediawiki.org/wiki/API:Imageinfo](https://www.mediawiki.org/wiki/API:Imageinfo)

---

<div class="post-metadata">

**Author:** ![jeanphilippeb](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/jeanphilippeb/32/41518_2.png) [@jeanphilippeb](https://forum.inaturalist.org/u/jeanphilippeb)\
**Post date:** [November 22, 2020, 6:53pm UTC](https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258/14 "2020-11-22T18:53:04Z")

</div>

Related discussion here:  
[https://forum.inaturalist.org/t/what-is-the-appropriate-response-action-for-a-user-uploading-multiple-duplicate-images-organisms/3041](https://forum.inaturalist.org/t/what-is-the-appropriate-response-action-for-a-user-uploading-multiple-duplicate-images-organisms/3041)

---

<div class="post-metadata">

**Author:** ![earthknight](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/earthknight/32/32879_2.png) [@earthknight](https://forum.inaturalist.org/u/earthknight)\
**Post date:** [March 14, 2021, 1:41am UTC](https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258/15 "2021-03-14T01:41:27Z")

</div>

I’d add that a link to the existing observation should be included in the warning message.

There are valid reasons for uploading the same image (one for a butterfly and one for the plant it’s on, for example), so a link provided would allow the user to determine if they want to continue with the upload or are making an unintentional duplicate.

---

<div class="post-metadata">

**Author:** ![optilete](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/optilete/32/1908_2.png) [@optilete](https://forum.inaturalist.org/u/optilete)\
**Post date:** [March 14, 2021, 8:15pm UTC](https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258/16 "2021-03-14T20:15:40Z")

</div>

[quote=“earthknight, post:15, topic:258”]  
There are valid reasons for uploading the same image (one for a butterfly and one for the plant it’s on, for example),  
[/quote] I do not think it is valid. In that case the image should be reused.

---

<div class="post-metadata">

**Author:** ![earthknight](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/earthknight/32/32879_2.png) [@earthknight](https://forum.inaturalist.org/u/earthknight)\
**Post date:** [March 15, 2021, 12:34am UTC](https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258/17 "2021-03-15T00:34:12Z")

</div>

It might be months to years later and you’re uploading for different reasons. It’s not realistic to expect everyone to remember every single past photo they’ve taken, plus which ones might be suitable for duplication.

To make it easier for duplication is exactly _why_ I suggested that if this is implemented (which I support in a slightly different form) that it is vital that a link is provided to the observation using the same image. That way the user can duplicate the observation instead of uploading a new image.

---

<div class="post-metadata">

**Author:** ![annkatrinrose](https://avatars.discourse-cdn.com/v4/letter/a/e47774/32.png) [@annkatrinrose](https://forum.inaturalist.org/u/annkatrinrose)\
**Post date:** [June 28, 2021, 1:34am UTC](https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258/18 "2021-06-28T01:34:00Z")

</div>

I’m not sure how it works and if this is specific to Flickr links, but if I choose a photo to import from Flickr that I’ve already imported earlier, it tells me: “ **Heads up:** this photo is already associated with an existing observation.” I thought that was a smart alert and it would be nice if this could be expanded from Flickr imports to manual photo uploads as well. I don’t know anything about the technical side of how to possibly make it work though.

---

<div class="post-metadata">

**Author:** ![jeanphilippeb](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/jeanphilippeb/32/41518_2.png) [@jeanphilippeb](https://forum.inaturalist.org/u/jeanphilippeb)\
**Post date:** [November 4, 2021, 6:13am UTC](https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258/20 "2021-11-04T06:13:02Z")

</div>

An efficient way to implement it: compute the checksum (for instance, MD5) of every photo uploaded, store the checksums in a database, compare the checksum of the next uploaded photo with all the checksums already in the database, if there is a match then this photo has been uploaded already.

---

<div class="post-metadata">

**Author:** ![ahospers](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/ahospers/32/1483_2.png) [@ahospers](https://forum.inaturalist.org/u/ahospers)\
**Post date:** [November 14, 2021, 9:24pm UTC](https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258/21 "2021-11-14T21:24:16Z")

</div>

I like the interface of this app…and it does contain duplicate checking

This app has a nice workflow for uploading photos [https://www.wikiuploaderapp.com/features.html](https://www.wikiuploaderapp.com/features.html)  
[https://download.cnet.com/Wiki-Uploader/3000-20418\_4-78600545.html](https://download.cnet.com/Wiki-Uploader/3000-20418_4-78600545.html)  
Although this app is not in “React” i thought the sourcecode was open.(Code is currently under Apache License 2.0; s) .Sourcecode [https://github.com/lyrk/Commons](https://github.com/lyrk/Commons) and it

[Next page](https://forum.inaturalist.org/t/duplicate-prevention-notify-observers-if-their-image-checksums-match-others-already-uploaded/258.md?page=2)
