it actually is possible to download photos in bulk, if you know how. i recently discovered that curl is available in Windows 10 versions 1803 and above. so in Windows (which is what i use) i think would be fairly easy to download a bunch of photos from iNat. first you need a list of photo URLs + the names that you want to download them as. you could get such a list from the iNat CSV download / export or project export. note that will give you only the first photo from each observation. so if you need a list of all the photo URLs (if observations contain multiple photos), you’ll probably need to use the API to get those.
then you can use your list to generate a list curl download commands. for example:
curl https://static.inaturalist.org/photos/80681648/medium.jpeg -o test2a.jpeg
curl https://static.inaturalist.org/photos/77847124/medium.jpeg -o test2b.jpeg
next, create a new plain text file, paste your curl commands into it, and save it as a .bat (batch) file. save that file in a folder where you want to download the files, and then just click (or double-click) to run it. you can also pass that .bat file along to someone else (if they use a newer version of Windows 10), and they can use that download those files:
(it’s important to note that in my example above, if i had an existing test2a.jpeg file in the folder i was running the .bat file in, it would have been overwritten. so you’ll want to consider and handle that, if it’s going to be a problem.)
previously, i also noted over here (https://forum.inaturalist.org/t/complete-observation-transfer-export-import/1678/4) other methods that you could probably use to do bulk downloads (including in other OSes).
it should also be noted that iNat sets limits on the amount of data that you can transfer. so be careful not to abuse the power. among other things, the API developer recommended practices doc (https://www.inaturalist.org/pages/api+recommended+practices) says:
Downloading over 5 GB of media per hour or 24 GB of media per day may result in a permanent block
also see: