libgphoto2
The libgphoto2 camera access and control library
...That is, if you own a camera that speaks a language that isn't published anywhere and nobody has been able to figure out the meaning of the sentences, libgphoto2 cannot communicate with those cameras. Then, there are cameras supporting the so-called USB Mass Storage protocol. This is a protocol that has been published and lets you access any storage device, be it a camera or a disk connected via USB to your computer. As there are already drivers for this protocol out there, you don't need an additional library like libgphoto2. The list of cameras that use USB Mass Storage is getting longer every day, so we won't publish it.