Saturday, February 14, 2009

eMusic Download Manager on Linux

I previously discussed some of my trials with Amazon's Download Manager on Linux. Today I'm going to talk about eMusic's Download Manager. eMusic is a music subscription service which began way back in 1998. At first it consisted entirely of independent artists, as eMusic distributes all their music in mp3 files without DRM. Over the years they have picked up more and more labels and now have a decent selection. Certainly there are many labels and artists that they don't have (especially some very popular ones or as the music snobs say "mainstream" artists), but if you are more interested in just finding some new music to enjoy rather than always looking for a specific artist you heard on the radio, then it is a great deal.

The way eMusic is setup is that you get some number of track credits every month for a subscription fee. Throughout the month you can select and download individual tracks or whole albums. Selecting an album to download is really just a convienent way to download multiple tracks. The basic concept of the downloader is the same as with Amazon's (it downloads stuff, duh!) but eMusic's download manager is implemented with Mozilla's XULRunner application framework. In my mind this is the Right Way to do this. eMusic isn't a software company, they are music service company. They provide a downloader to make things easier on their customers, but allow those customers to help them out by keeping it open source. By using XULRunner it seems as though they get good cross-platform performance and consistancey "for free."

The other thing that I think they do right is that they distribute the Linux downloader in a distribution agnostic way: by tar.gz and .bin (self-extracting archive) files. And there is nothing preventing distribution from rolling a package with this tar.gz file for better integration with their setup. Contrast this to Amazon's downloader, where I had to use the rpm2tgz utility in an effort to get around some library issues. Don't get me wrong, I certainly wouldn't be opposed to eMusic putting out packages, as long as that tar.gz option was always there.

Ok on to the application itself. There isn't much to it really. It accepts a specially formated file from the eMusic website (by clicking the download button on the webpage) and downloads the files. And that is pretty much it. There is apparently the ability have add ons, similar to Firefox but I haven't been able to play with it. Which brings me the one problem I have with it. From what I can tell I should be able to browse the eMusic website in the downloader, but I can't. It seems as though none of the HTML browsing functionality is working. As such when I click "get extentions" in the Add Ons dialog, nothing happens. When I click "Go To Emusic" on the opening screen, nothing happens. But it downloads my tracks and as that is all I really care to use it for, it works for me. Also I believe the Windows version (and possibly the Mac OS version) have a syncing feature to automatically add the downloaded tracks to your preferred Media library, but that is missing on the Linux version. Again this doesn't bother me as all I want is something to easily download my eMusic tracks.

So overall I'm happier with the eMusic Downloader than with Amazon's Downloader, in spite of still having issues with reduced functionality. At least with the eMusic downloader I feel that I have a better chance of solving my issues than with a closed application. It is just in this case, it already does what I want it to.

Friday, December 26, 2008

The Linux Amazon MP3 Downloader

I thought I would write about my experiences with the Amazon MP3 downloader on Linux, and my thoughts on those experiences. Many have written before about it, but perhaps I'll provide a new angle? Perhaps not. Read on.

Last year when Amazon announced their non-DRM mp3 download service I was very excited. I wanted to "vote with my wallet" by purchasing some music, just to show that I really supported the idea. The catch was you had to use the Amazon Download manager in order to buy full albums at the album prices. Sure you could buy all the songs of a given album individually, but you paid a premium. Not surprisingly there wasn't a GNU/Linux version, but amazingly one was in the works! So I decided to wait. When they released the Linux version this past March I never got around to using it. A few weeks ago I finally gave it a whirl.

As others have noted Amazon provides install files for four different systems: Ubuntu 7.10, Debian 4 Etch, Fedora 8, and OpenSUSE 10.3. None of them being a 64-bit variety. OK, I guess I can accept that these are decent choices if you were going to release a closed application on only 4 Linux variants. But they should at least provide a .tar.gz version. I'm running Fedora 9 x86_64, so I figure my best bet will be the Fedora 8 RPM, after all I can run 32-bit apps as long as I have 32-bit libraries it needs.


# rpm -Uvh amazonmp3.rpm
error: Failed dependencies:
libcrypto.so.6 is needed by amazonmp3-1.0.3-1.i386
libssl.so.6 is needed by amazonmp3-1.0.3-1.i386

Hum, those look like some pretty basic libraries, I really don't have them?

# ldconfig -p | grep crypto
libk5crypto.so.3 (libc6,x86-64) => /usr/lib64/libk5crypto.so.3
libk5crypto.so.3 (libc6) => /usr/lib/libk5crypto.so.3
libk5crypto.so (libc6,x86-64) => /usr/lib64/libk5crypto.so
libcrypto.so.7 (libc6,x86-64) => /lib64/libcrypto.so.7
libcrypto.so.7 (libc6) => /lib/libcrypto.so.7

Oh, so I DO have the crypto library, just a newer version of it! Same thing with libssl...too new:

# ldconfig -p | grep libssl
libssl3.so (libc6,x86-64) => /lib64/libssl3.so
libssl3.so (libc6,x86-64) => /usr/lib64/libssl3.so
libssl3.so (libc6) => /lib/libssl3.so
libssl.so.7 (libc6,x86-64) => /lib64/libssl.so.7
libssl.so.7 (libc6) => /lib/libssl.so.7

These library "versions" are supposed to mean that they are not ABI compatible with previous versions, but maybe it doesn't REALLY need the old version. I could just fake it using a symbolic link:

# ln -s /lib/libssl.so.7 /lib/libssl.so.6
# ln -s /lib/libcrypto.so.7 /lib/libcrypto.so.6

But the package still won't install because the RPM database doesn't know anything about these faked out libraries. So I use the rpm2tgz tool to extract the binaries out of the RPM file. And what do you know, the downloader launches successfully! However, trying it out with one of the free downloads that Amazon offers shows that there appears to be a communications issue, probably that drat SSL library. So what are my options?

  1. Figure out which libssl release corresponds to libssl.so.6 and build a parallel version
  2. Install one of the "supported" Linux variants

I decided on the second option, besides I have been meaning to try out VirtualBox (I typically use VMWare for my virtualizing needs). Also I haven't looked at OpenSUSE in forever and would not mind checking it out. So I install and configure VirtualBox (not without it's issues, but that is another story), install and configure OpenSUSE 10.3 inside of VirtualBox, and finally install the Amazon downloader. With this setup I successfully purchased and downloaded Slipknot's newest album "All Hope is Gone." A bit of a heavyweight solution, and it will get irritating fast if I use it often, but it worked.

In the end I was happy with my purchase, and I don't really expect Amazon to do an in-house build for all the Linux variants out there, but that is the point isn't it? Is there really a reason to keep a download manager closed up? I mean the interface is brain-dead simple, it doesn't really provide any special features other than talking with their servers. This simpleness is a good thing, as I likely have other applications I prefer to use for any other operation they would put in their downloader. Make it an open project and devs can make builds that work for their distros giving access to more people without limiting their distro choice.

The Real First Post

So I've decided to seriously try this blogging thing. I make no promises on frequency or quality, but I hope it will be of interest to other like-minded people. My frustrations with the Linux version of the Amazon downloader was one of the main things that made me decide that I might be able to come up with things to blog about. Plus Linus has a blog now, and he's my hero! :) I also came up with several more ideas, so I'll probably post quite a bit right up front and then it will level out a bit.

Also I deleted my actual first post out of embarassment. I didn't want it sitting around if I was actually going to point people here, I know that it a bit of a blogging faux paux, but oh well. Maybe it will turn out to be an interesting blog!