Advice on backing up large amounts of iNaturalist photos

Recently I’ve been wanting to make offline copies of my iNaturalist observations, that way if something happens to the iNaturalist servers or the internet as a whole I won’t loose my observations.

However, as of writing this I have 20,600+ observations.

This means making physical photocopies is out of the question, as scrapbooking that many photos would take up an entire wall of bookshelves and cost thousands of dollars to print even when assuming the lowest average cost per print. However I do have a 1TB hard drive. The problem is I don’t know how to copy all my observations with their metadata (time, date, location, species observed and notes) without manually downloading and assigning this info to the description of all 20 thousand photos.

Does anyone have any advice or experience on transffering large amounts of media and data? Better yet, is it possible for me to make a digital time capsule of my entire iNaturalist account to be stored on the hard drive if I ever decide I need to do so?

You should read this thread and the ones linked there:

https://forum.inaturalist.org/t/backup-what-if-inat-suddenly-disappeared/47271

It would be extremely time-consuming, but you could use the iNaturalist2commons tool to export your images and associated data to Wikimedia. From Wikimedia, you could download everything at once. That would be quite a bit faster than downloading images and manually copying data from iNat, but it would probably still take a month or so of devoted labor. It would have the added benefit of being on Wikimedia Commons.

there’s this https://github.com/kueda/chuck/ (see the background at the bottom)

It’s currently under development. I haven’t tried it myself.

Wrote one for you with AI. Tested, it works. Have fun.

I have more than 100.000 file. This includes 1700+ gif, audio. These are files i’ve uploaded on iNat and eBird.

In the background, i have raw files and files that i did not choose for uploading, mostly because burst capture. Their amount is 750.000+ file and 38 terabytes.

I use Digikam to organize them. They are foldered by dates. Such as,

2026
February
12.02.2026

I use Krokiet to delete exact dublicates. If i didnt do that, my archieve would be more than 50-60 tb.

I have two commercial size harddisk. One is a Seagate Exos one is Toshiba MG10.

I dont recommend single HDD more than 18 tb. Their spin-up time so long, require registry changes for windows to adapt.

Using 2x18tb will be great. I also recommend using a Dual back up for the best footage. One external device and one cloud storage is best. I copy best of the photos and videos to a selected folder and backing up it.

These are my solutions.

As my workflow goes from my camera and GPS to my computer and then to iNat, all my pictures are

  • labelled by the transfer program with yyyymmdd_HHmmss and written into a monthly folder
  • Geotagged by Geosetter
  • ID by me and iNat, the date, walk and ID gointo the [Comments] space of the EXIF (with Geosetter
  • Selected, cropped or reduced to screen-size with Irfanview and stored into subfolder [tx]
  • Uploaded to iNat as observation. Observation nr written back into EXIF for further reference and prevention of duplication
    Presently I have ~11k observations with the originals and the reduced uploaded pictures on my computer and backed up on a SSD of 2G
    I hope and trust that iNaturalist is surviving my computers and myself (1944)

I dont know how to use this script. Can you please tell me more for a person who know nothing about coding.

Maybe it’s time to curate your collection ;-) it’s part of the job for any photographer! I try to do this at least once a year, remove any RAW files that are not needed, eg not high quality, common species, etc.

In fact I’m only keeping those that have some value, either rare species, or very good pictures, for the rest 1-2 JPG are more than enough.

I’m obviously not the author, but first you need to check if Python is installed. Open a command prompt (press Windows key, then type “command” or “terminal” for MacOs) and in this new window type “python --version”. If you get a number 2.something or 3.something, you can use the script…

Say you downloaded the script to C:\Users\Yourusername> then you rename the script mynat.py (instead of mynat.txt) and you should be able to run the script by typing “mynat your_inat_username” in the command prompt.

I didn’t try, but it should create directories with every observations with the photos and a file for the metadata inside, or something like that… make sure you have enough of disk space!

do you already have your photos saved in your own personal respository somewhere?

if your intent is to download a ton of photos from iNaturalist, i don’t think that’s a great idea. you’ve retained all rights on your photos. so they’re not stored over in the AWS Open Dataset, which means that your downloads will be subject to the media download rate limits here: https://www.inaturalist.org/pages/developers.

for the data, how best to get it just depends on what exactly you want and how you want to format it. if you just want it in a tabular format, you could just use the standard CSV export to get some of that.

if you need more information, including original photo filenames (to match up with your existing set of original photos), you could use the API to get this. just putting this into a raw JSON or tabular format is the easiest thing to do.

if you want to actually tie your photos to the data by, say, writing observation IDs in to the metadata of your photo files, or by, say, creating printable documents that display the data and photos together in some logical way, that’s more complicated.

there are existing things that do some variation of all of the above, or you could build your own thing. the best way to accomplish this depends on your own skills and exactly what sort of results you want at the end of the day.

A couple of years ago I started working on a prototype of a tool to automatically sync iNat with my local photo library as embedded EXIF/XMP metadata, much like NaturTag lets you do manually.

Due to some long-standing, bizarre, known iNat bugs and API limitations this was an unnecessarily difficult task, and I abandoned the half-functioning prototype.

Since my workplace pays for a github copilot AI programming subscription, I’ve spent a few evenings over the last month turning it into a working project, and at this point it can automatically assign about 95% of my observations with their corresponding local photo files, with only a few requiring manual disambiguation. I run it once every week or two (the indexing takes a few minutes) to keep the local metadata updated.

It’s not quite polished to the state that I’d be able to recommend it to regular computer users, but if there’s interest in it I was planning on releasing it soon. It would certainly be interesting to let it loose on other people’s photo collections, as I’m sure there are more weird obs->photo matching edge cases to be discovered and fixed…

Go to chatgpt.com or perplexity.com and say “help me run a python script i downloaded”. It will help you. They are infinitely faster and more patient than humans!

Update just to let others know: my instance of the mynat backup tool is still running and has downloaded ~8000 observations so far, the resulting directory structure is around 38G. It seems very nice and stable. Download here.