"Fixing" a Banshee music database

NOTE: This is a bit verbose in the description, but maybe you can learn something from the process. If you just want to know how to fix the Banshee database after changing user name or moving your library to a different location, scroll down.

I recently reinstalled Ubuntu and in the process changed my user name to my more commonly used 'cybolic', however after copying the ~/.config/banshee-1 directory to my new home dir I realised that Banshee had all my music indexed by absolute path meaning that it was looking for my old home dir and so couldn't play any tracks.

To fix it I assumed I would have to do a search and replace on its database, but I needed the filetype, so a quick 'file ~/.config/banshee-1/banshee.db' later I now knew that it was in SQLite 3.x format.

Now on to a tool to do the search and replace on the database...

Ubuntu has a tool in it's repos called "sqlitebrowser", that sounded about right, so I installed it and yes, it allowed me to browse the database and perform SQL queries - just what I needed.

So, long story short, to change the location of your music files in the Banshee database, here's what you do (close Banshee first):

sudo aptitude install sqlitebrowser
sqlitebrowser ~/.config/banshee-1/banshee.db

Now change to the tab labelled "Execute SQL" and write something like the following:

update CoreTracks set Uri = replace(Uri, '/home/<olduser>', '/home/<newuser>');
update PodcastEnclosures set LocalPath = replace(LocalPath, '/home/<olduser>', '/home/<newuser>');

You are now done and can start Banshee again :)

 | License: CC0 Public Domain
« A quiet little gameThoughts on The Piracy Logic Problem »
There are  on this post. Add yours?
By activating and using the Disqus feedback service, you agree to their privacy policy.