Posts Tagged ‘songbird’

How I installed Songbird 1.9.3 on Natty

Tuesday, June 7th, 2011

I used to use iTunes as my music player, and I guess when I first switched to Ubuntu in 2008 (running Hardy) I wanted to migrate my iTunes library rather than just starting from scratch (so I wouldn’t lose my play counts and such).  I ended up stumbling upon Songbird, and managed to migrate my iTunes library through a convoluted process of copying my iTunes library from my Mac to Windows, migrating that library to Songbird, and then copying that library to Ubuntu.  I think I had to do some SQL magic to get the file paths updated (Songbird on Windows notably made all the paths lowercase in the SQLite database, so part of this process involved renaming all of my music to be entirely lowercase.)

I recently built my Natty machine and wanted to keep my metadata alive, and here is how I managed to migrate my Songbird library from 0.7.0 to 1.9.3.

To get Songbird

Add getdeb to repositories (http://www.ubuntuupdates.org/ppa/getdeb_apps?dist=natty)

wget -q -O - http://archive.getdeb.net/getdeb-archive.key | sudo apt-key add -
sudo sh -c ‘echo “deb http://archive.getdeb.net/ubuntu natty-getdeb apps” >> /etc/apt/sources.list.d/getdeb.list’

Then install songbird

sudo apt-get update
sudo apt-get install songbird

Migrating the database from 0.7.0 to 1.9.3

I doubt there are many people who want to do this, but if you’re one of the few who are in this situation, hopefully this will help you out.

This will involve the old Ubuntu installation, the new Ubuntu installation, and a Windows machine.

Open Songbird 1.9.3 to get a fresh database on the new machine.
On the 0.7.0 machine, the database is located in ~/.songbird2/xxxxxxxx.default/db
Unfortunately, copying that db folder directly to 1.9.3 on the new machine didn’t work; it gave an error while attempting to upgrade but didn’t give any details

I was able to upgrade by dropping it into a Windows version of Songbird 1.9.3. After installing Songbird, copy the db folder from the old Ubuntu machine to the Songbird data folder on the Windows machine. (On Windows XP, the database is stored at C:\Documents and Settings\username\Application Data\Songbird2\Profiles\xxxxxxxx.default\db\) Run Songbird on the Windows machine - after running the upgrade wizard the music should be listed (it probably won’t play because the paths will be wrong, but that’s not necessary to make this work).

Once upgraded by Windows, close out of Songbird and go back to the new Ubuntu machine running Songbird 1.9.3.

Go to the ~/.songbird2/xxxxxxxx.default directory and rename the db directory to something else (like db_bak). Copy over the upgraded db directory from the Windows installation.

There are a couple more tweaks that needed to be done to make Songbird happy.

Install sqlitebrowser if you don’t already have it:

sudo apt-get install sqlitebrowser

It will be found in Applications > Programming.

Open the fresh 1.9.3 songbird database (db_bak/main@library.songbirdnest.com.db), go to the Browse Data tab, and in the library_media_item table, copy the text in the guid field.

Open the upgraded database with your data (db/main@library.songbirdnest.com.db), go to the Browse Data tab:

  • in the library_media_item table, double click on the GUID entry and replace it with the one you copied.
  • in the library_metadata table, in the record with name=’resource-guid’, replace the “value” with the GUID you copied
  • Save the database.

Finally, in the db directory, delete playqueue@library.songbirdnest.com.db. I found that if this wasn’t done songbird will lock up.

At this point I was able to open Songbird and see my library. While I was trying to figure this out I did do one more thing which may or may not have been necessary, so don’t do this if it’s already working. It looks like playlists in the media_items contain the old GUID in the content_url field, so I replaced them on the Execute SQL tab with:

UPDATE media_items SET content_url = replace(content_url, ‘old-guid‘, ‘new-guid‘) WHERE content_url LIKE ‘%old-guid%’;

Where old-guid is the GUID from the old database and new-guid is the GUID you copied from the fresh database.

Unfortunately I still haven’t found a way to get minimizing to the notification area to work with Songbird 1.9.3 on Natty, which I had working with Firetray on my Hardy installation. (The latest version of Firetray appears to work with Firefox but not Songbird 1.9.3 - it seems that all of the hide on minimize/close functionality works except for actually showing the icon in the notification area.)  Songbird also doesn’t integrate with the volume control in the default indicator applet, so it’s not as friendly as using a music player that does. Hopefully I’ll figure out how to do it soon and post about it when that happens.