player: improve error handling
lastfm: make calls asynchronous