[http://www.sno.phy.queensu.ca/~phil/exiftool/ ExifTool] is a platform-independent Perl library plus a command-line application for reading, writing and editing meta information in image, audio and video files. Tested with over [http://www.sno.phy.queensu.ca/~phil/exiftool/models.html 3000 camera models] and offering [http://www.sno.phy.queensu.ca/~phil/exiftool/history.html new releases almost every 2 weeks], no other software can compete with Exiftool's Tag knowledge. It can interpret the most interesting/mysterious parts of EXIF: the proprietary Makernotes, in which the camera manufacturer stores a wealth of information: device serial numbers, lens models, advanced equipment settings. Written in an interpreted language, Exiftool suffers from 2 downsides: 1. poor performance compared to its C++-Counterparts (see Exiv2vsExifTool) 2. poor embedding into non-Perl applications (binary can only be invoked via exec-call, no interface) Fact 2 is almost a killer for every modern web app: invoking a new exiftool instance for every metadata extraction slows down the performance quite a bit. The author himself mentions an overhead [http://www.sno.phy.queensu.ca/~phil/exiftool/#performance in loading Exiftool], so the best approach would be to minimize/avoid this action. On the other hand we have to recognize that Exiftool is ruled by the capabilities of Perl (no Python API possible etc). However, the situation could be improved by an Exiftool-Daemon. Instead of invoking Exiftool via commandline and suffering from the slow loading, the Exiftool-Daemon permanently stays in memory and gets fed with image data by STDIN (?). It sends the extracted metadata to STDOUT (maybe JSON-encoded to maintain the data structure.) Of course this daemon has to be written in Perl *grrrr*, I googled some useful links: * [http://www.sno.phy.queensu.ca/~phil/exiftool/ExifTool.html Exiftool Module Documentation] exiftool as embedable perl library * [http://www.perlmonks.org/index.pl?node_id=478839 Writing a Perl Daemon] - the answer of user Cees shows the implementation of a Perl Daemon