Often the most impressive thing about the open source community is getting to watch someone step up to work on a task that's far from fun or glamorous in the traditional sense. A good example of that phenomenon is Damon Lynch's Rapid Photo Downloader (RPD), a utility that takes the pain out of what many projects overlook: getting your newly shot material off of the camera's memory card and into your computer. Despite the name, RPD handles both photos and video, and although its speed is impressive, how it really makes your life easier is by keeping you and your storage organized.
Why and How to Get Rapid
The root "problem" that RPD sets out to solve is what happens when you plug your digital camera or camera memory card into your Linux computer. The default behavior is for a desktop tool to pop up, usually a GNOME or KDE front-end to gPhoto2, the standard image-transfer library. The tool knows where in the flash memory hierarchy to find the actual image files (including the separate storage schemes for raw and JPEG images), and it copies them to the hard disk and optionally erases them from the card.
That sounds simple enough, but more often than not, Linux distributions don't use a file-manager tool to handle the task. Instead they hand it off to a full-featured photo management app, which takes considerably more time to step through the process, often filing images in its own internal database, making thumbnails, and other bookkeeping jobs. While that might be a tolerable overhead for a 1 or 2GB card, when you hit 16 or 32GB, it becomes agonizingly slow. If you're on notebook battery, it is even worse.
Compounding the problem, no two photo-management apps can agree on where to store things:
~/MyPhotos, etc. Even if you're a good Linux citizen, every few releases the distros change their default app set, and you eventually find your photos scattered around a half-dozen locations. That makes images hard to find, easy to lose, and easy to forget when you're migrating computers or making backups.
You can download RPD from the project's Web site. The team has detailed instructions provided for Ubuntu, Fedora, Debian, Mandriva, and several other distributions. In most cases, there is either a prepackaged version of RPD available from the distro, or a simple-to-add repository. The latest release is version 0.4.1, a minor update from May of this year.
After you've installed RPD, you can launch it from the Applications menu or from a terminal with
rapid-photo-downloader &. RPD is built on GTK+ and some GNOME underpinnings, but it runs just as well in KDE and other environments, since the only key dependency is Python. How you get RPD to actually launch automatically when you attach a camera or pop in a memory card varies, though. In GNOME, go to the "Removable Drives and Media" option in Preferences, and enter
rapid-photo-downloader as the command to import photos when a device is connected. In KDE, the setting is found in "System Settings" -> "Device Options."
With RPD, you are in control of all of the options. The preferences dialog lets you choose any folders on your system as target directories (including separate settings for photos and videos), and optionally allows you to auto-create sub-folders to further structure your archives. RPD can offload media from multiple devices at once, so you can get the maximum performance our of your system by, for example, connecting your camera via USB cable while popping another memory card into the card reader slot.
In its simplest form, the sub-folder feature lets you split up your collection in sub-folders by year and month, which makes backing up to non-volatile media considerably simpler. But you can also configure sub-folders to split up images by their filetype (e.g., keeping raw and JPEGs separate), by automatically-gathered metadata (such as camera model), or by "job codes" that you define yourself ("work" and "personal" come immediately to mind).
A related feature is RPD's auto-file-renamer. If you have a naming scheme in mind, RPD lets you set up a renaming formula in "set it and forget it" mode, using the same options available as sub-folder choices. A big benefit to this technique is keeping more than one image source straight. Not every camera allows you to control the file name and file-numbering settings it applies to new material, and these days almost everyone has one "real" camera plus a cameraphone. RPD can massage the less-flexible filenames into the same format as the rest.
The RPD project makes a big deal out of its speed. On top of the name itself, the home page boasts of a 2.5x speedup over F-Spot and a 12.5x speedup over Shotwell. I don't think those numbers are scientific, but RPD is certainly faster. Even more so when you factor in offloading from two cards at once and the instantaneous file-rename feature, which saves an entire step.
Backups and Other Niceties
Speaking of saving steps, in my mind one of RPD's signature features is the ability to automatically save backup copies of your media. As a member of the non-elite club of those who have had a laptop drive fail while on the road, I always carry a 2.5" external drive with me to save a second copy of any files I shoot (the first being on my laptop). RPD will write backup copies of each file to a directory you specify, and can even do so at the same time it saves the main copy. This assumes your bus bandwidth can keep up; if you are also doing multi-device offloading, you would probably be better off serializing some of your tasks...
As with the main file operations, you can specify separate settings for photos and videos, and RPD will automatically detect all removable storage media, so you can save backups in more than one place if you desire. RPD also allows you to configure some automated behavior, such as starting the offload (and backup) process as soon as the program launches, unmounting removable devices when offloads are completed, and so forth. A handy feature you are likely to only appreciate on rare occasions is how RPD handles name collisions — such as when two auto-renamed files somehow would end up with the same filename. Finally, RPD can automatically sanitize filenames and folder names to ensure compatibility with lesser, non-free operating systems.
For 90% of RPD's users, the basic offload and backup features are more than enough — well, assuming that they use backups, but then again, that is part of the point. RPD builds that easy-to-procrastinate task into the plug-and-play, normal operation. High-end users are more likely to appreciate the flexibility of subtle things like automatic file renaming and directory creation. After all, if you only take a few pictures or videos a year, opening up your Photos folder in Nautilus or Dolphin and browsing by thumbnails might be all the asset management you need. It's with hundreds that that method breaks down.
I'm a big proponent of the "let each tool focus on its own thing" approach. As such, I don't like it when a photo editor decides it knows better than I do where I want my images stored or how I want them organized. Ubuntu frequently changes which iPhoto clone is the preferred photo-management app, and honestly I don't find any of them to be particularly good, or particularly good at guessing what I want. It works far better to have a dedicated image offloader like RPD launch when I plug in a memory card. Thus, regardless of whether I choose to fire up Digikam, GIMP, Rawstudio, or a Flickr exporter, I know that my collection is in the same place. Oh, and I know that there's a backup copy on a removable drive, too — even if I forgot about it when I sat down at the keyboard.