Note (added 2013-11-01): this guide applies to running the Windows version of Spotify using Wine; however Spotify nowadays provide a native client for Linux (see here), albeit in Preview form it still works well. Additionally from my experience, such URLs work out-of-the-box with the native client (including Ubuntu), without having do anything like that described below.

One of the first things that actually triggered my interest in Spotify was that although they did not have an official Linux client, they did seem to try and assure it worked well in Wine, even recommending using Wine to Linux users, with this page dedicated to assuring the experience is complete as possible (although it generally works out the box).

One of the most useful parts of that page is where they provide a nice, simple script to allow native Linux applications to call the Spotify client running under Wine with Spotify’s URIs that are used to share playlists, tracks, etc. They also provide instructions on how to get Firefox and Opera to call this script for those URIs (for example using an entry on about:config in Firefox).

This works great, until you try to use the URIs outside Firefox or Opera, say in Pidgin or a Chromium alpha, neither of which appear to provide their own methods for supporting custom URIs, instead they depend on either Gnome or ‘xdg-open’ (which in turn can ask Gnome). So I thought it might be a good idea simply to tell Gnome to use the script, and let everything else depend on Gnome; sadly I could find no graphical way of doing this, but after a bit of searching, I found this page, which revealed it was a simple as adding a few keys to GConf. So I adapted to method for the Spotify URI and script, and sure enough it works fine (certainly in both Chromium and Pidgin, on Ubuntu 9.04).

Below are the normal commands need to create aforementioned script:

echo '#!/bin/sh' > ~/.browser2spotify
echo 'exec wine "C:\Program Files\Spotify\spotify.exe" /uri "$@"' >> ~/.browser2spotify
chmod 755 ~/.browser2spotify

And here are the commands for adding the GConf keys, but be careful, the tildes and shell variables (such as $HOME) didn’t appear to work here, so you will need to manually modify the address in the first command to reflect your username:

gconftool-2 -t string -s /desktop/gnome/url-handlers/spotify/command "/home/<your username here>/.browser2spotify %s"
gconftool-2 -s /desktop/gnome/url-handlers/spotify/needs_terminal false -t bool
gconftool-2 -s /desktop/gnome/url-handlers/spotify/enabled true -t bool

Fingers crossed, all applications that call on Gnome or ‘xdg-open’ for unknown URIs (such as the aforementioned Pidgin and Chromium), should now be able to call Spotify; in fact, Firefox too calls either Gnome or ‘xdg-open’, so this method can suffice for Firefox too.

Chromium alpha calling Spotify via 'xdg-open'

Chromium alpha calling Spotify via ‘xdg-open’

Update 1st May 2010 regarding other points on Spotify in Wine:

  • As of the current Wine release, the new Facebook social function works, but you must first associate (‘connect’) your Facebook account by running Spotify on Windows, as the login page only half works under Wine at the moment.
  • This guide is great for doing the reverse: allowing apps running in Wine –  like Spotify – to call your native browser (Firefox, Chromium etc.) – just one note though: on the second step, you should only need ‘xdg-open’ as the string value. (I wonder why Wine doesn’t call xdg-open by default)

Update 1st August 2010 regarding Spotify for Linux Preview:

  • The awesome news is that Spotify have now released a Preview of Spotify for Linux. This is great and seems to support most features very very well (just waiting on multimedia keys support, local file support and ads to allow non-premium members) – now I was initially unsure whether the developers had considered handling URIs, but they have – but if you have already followed this guide, you will find that it has ‘broken’ the URI support of the native client – to fix this, you need to press Alt+F2 and run ‘gconf-editor’ and navigate in the left pane to ‘desktop > gnome > url-handlers > spotify’ and right click the ‘command’ entry in the right pane, and select ‘Unset Key’, which should allow the key included with the native package to restore. Just to note: if you haven’t followed this guide before, the URI support in the native client should ‘just work’.

Update 22nd December 2011 regarding Spotify for Linux Preview:

  • Although I’ve yet to see this officially announced, OMG!Ubuntu! is reporting that Free/Open users can use the Linux preview too and I can confirm this is the case – they appear to have succeeded to implements the ads that were holding back wider availability. Just so happens I listen to far too many podcasts today to have time to listen to much music.