libmtp is an Initiator implementation of the Media Transfer Protocol (MTP) in the form of a library suitable primarily for POSIX compliant operating systems. We implement MTP Basic, the stuff proposed for standardization.



Read our README file for information about project history, status etc.

To figure out whether your device is known to libmtp, consult the music-players.h file or so. We no longer keep any detailed info on supported players, if you wish to do that for us, mail the developer list.

libmtp is of course licensed under the GNU Lesser General Public License.

New Device?

If you happen upon a device which libmtp claims it cannot autodetect, please:

If you've done some additional hacking, join our mailinglist and post your experiences there.



Project Staff


Q: How does libmtp differ from libgphoto2?

A: libgphoto2 is file-listing oriented, everything is a file (the unix way). It abstracts away details of the underlying protocol this way and represent any camera device (MTP devices are regared "cameras" in libgphoto2) this way. libmtp is closer to the actual protocol and does not provide the same abstraction, instead it relies on numeric identifiers for "objects" on the device, 32bit numbers that are unique for each object/file. This has the side effect that libmtp can handle two files with an identical path (folder+filename) whereas libgphoto2 will be confused by this.

Q: Any manufacturers helping you guys out?

A: Not really, with the exception of Microsoft who gave us a Zune through a proxy. Creative have been positive though. If you work for a MTP device producer, please help. Logo