gPhoto is a program and library framework that lets users download pictures from their digital cameras. The libgphoto2 library gives you access to hundreds of models of digital cameras on several platforms.
gPhoto2 is a free, redistributable, ready to use set of digital camera software applications for Unix-like systems, written by a whole team of dedicated volunteers around the world. It supports more than 1800 cameras
gPhoto2 runs on a large range of UNIX-like operating system, including Linux, FreeBSD, NetBSD, MacOS X, etc. gPhoto is provided by major Linux distributions like Debian GNU/Linux, Ubuntu, Gentoo, Fedora, openSUSE, Mandriva, etc.
libgphoto2 is freely available and distributed under the terms of the GNU LGPL.; the other gphoto programs are freely available and distributed under the terms of the GNU GPL.
Newer libgphoto2 versions also support Media Transfer Protocol (MTP) based media players since their communications protocol is based on the Picture Transfer Protocol (PTP).
For a deeper view of the inner working of libgphoto2, please read the appropriate chapter in the gPhoto2 manual