Automating the activation / deactivation of Spotify's proxy settings

Automating the activation / deactivation of Spotify's proxy settings

I'm a BIG fan of Spotify. I use it every day, hours on end.
I like the fat client though, I find the web version way too buggy and unstable.



At ING, we use a HTTP proxy and I have configured Spotify to go through the proxy. At home, I don't use anything.
This means that every day, I have to go back to my settings, disable / enable the proxy and restart Spotify. This is very annoying.



So annoying in fact that I started using the web player at home, to my disappointment.



Finally, it go me tired enough so I decided to dig deeper into the issue and find a solution. It had to be possible to automate this.



The first step was to find the location of the config file. On my Macbook, it is located in $HOME/Library/Application Support/Spotify/prefs.
In this file, I saw the line : network.proxy.mode=1.
The rest is child's play



Here is the final script I came out with to enable/disable spotify's proxy settings. I called it spotiProxy

#!/bin/sh

ON_OFF=$1
SPOTIFY_PREFS="$HOME/Library/Application Support/Spotify/prefs"
PROXY_ON="network.proxy.mode=2" #HTTP Proxy
PROXY_OFF="network.proxy.mode=1" #No proxy

if [ ! -f "$SPOTIFY_PREFS" ]; then
    echo "Spotify preference file not found. Exiting"
    exit 1
fi

if [ "$ON_OFF" = "on" ]
then
    echo "Activating Spotify proxy settings"
    sed -i -e "s/$PROXY_OFF/$PROXY_ON/g" "$SPOTIFY_PREFS"
elif [ "$ON_OFF" = "off" ]
then
    echo "Deactivating Spotify proxy settings"
    sed -i -e "s/$PROXY_ON/$PROXY_OFF/g" "$SPOTIFY_PREFS"
elif [ "$ON_OFF" = "show" ]
then
    cat "$SPOTIFY_PREFS"
    exit 1
else
    echo "Invalid command entered. Please use 'spotiProxy on' or 'spotiProxy off'"
    exit 1
fi

number_processes=$(pgrep Spotify | wc -l)
if [ $number_processes -gt 1 ] 
then
    echo "Restarting Spotify"
    osascript -e 'quit app "Spotify"'
    sleep 1
    open -a Spotify
fi

It's usage is very simple :

  • Call it with spotiProxy on (or off)
  • It will set you settings accordingly, and restart Spotify if it was already running.
  • Enjoy!

This script is run automatically every time I arrive at home or at the office. Nothing to do any more. Joy!




If you want more info, you can check out the related Spotify forum post or the gist on github.



See you next time!