Table of Contents
It’s the time of the year that avid music listeners like me are waiting for Spotify Wrapped to be released – the summary and analysis of your “year in music”, providing some potentially new insights into your listening habits. While there is criticism about people “celebrating” the mining and sharing of their personal data, I personally very much enjoy watching the yearly wrap-up.
However, there’s a catch: It only will include your listening history from Spotify, so if you listen to music anywhere else, that won’t be considered. For people who are interested in tracking their listening history more holistically, services like Last.fm exist to receive, store and analyze such data from any given source. The term used to describe this kind of music tracking with Last.fm is called “scrobbling”. Accordingly, “scrobbler” is the name for all software that is used to identify the song a user is listening to then “scrobble” it to Last.fm.
Some software comes with built-in scrobbling capabilities, for example VLC for desktop. Now, the for desktop is the crucial part here. For some reason, very few mobile apps come with that feature on board. Spotify does scrobble to Last.fm, but it cannot access my personal music library that is stored on OneDrive.
How do these apps work? Well, you’ll need to grant them permission to read everything that’s written to your phone’s notification area. The apps will then extract artist name and song title from there. But theoretically they can read everything else, too. Second-factor authentication codes sent to your phone or private messages displayed as notification, and they might mistake such private messages for a song and send it to Last.fm – or if the app is compromised, use it for worse.
Why would you install such privacy-intruding software?
In a way it makes sense – if your goal is to track potentially everything you are listening to and are not overly worried about that data’s whereabouts on some 3rd-party Last.fm server, why not go with such dedicated software. For me personally, even though I do like to have a mostly complete listening history, this went a bit too far. Moreover, no matter which software and which troubleshooting advice I tried, there were always issues with some songs scrobbled multiple times or not at all.
Hence, I was looking for a mobile solution that comes with a built-in scrobbler. This proved to be surprisingly difficult. There are several apps that state that they come with Last.fm integration, but then in fact rely on the presence of a dedicated scrobbler being installed on the phone – exactly what I wanted to avoid.
USB Audio Player PRO for integrated scrobbling
Finally I found USB Audio Player PRO, an app that is actually meant to improve audio quality when listening with a dedicated DAC. Then again, you can also just use it as a nicely designed audio player – with, tadaa, integrated scrobbling!
Problem solved, right?!
BubbleUPnP for providing cloud access
As I wrote above, my music library is of course not stored locally on my phone, but in my OneDrive cloud account. Which brings us to the next problem: Surprisingly few apps can natively stream music from your cloud accounts.
One of the few apps that does support streaming from several different cloud providers is BubbleUPnP. Conveniently, it can also serve as a media server, which means it’s providing streaming access to other devices (such as your TV) and apps (such as USB Audio Player PRO).
First of all, of course you’ll need to download both apps. USB Audio Player PRO and BubbleUPnP are both not free, but paying a few bucks for outstanding software is something I’m very much willing to do. Moreover, I would hope that such apps are more privacy-friendly than those where the business model is “we are free but will harvest every piece of your data we’ll get our hands on”.
Next, you’ll need to set up cloud access in BubbleUPnP, in my case I granted access to my OneDrive account. Again, it means you’ll need to trust this app of course, and if it gets compromised, with access to your whole cloud, damage might be potentially bigger than the one caused by a dedicated scrobbler. But of course even if you use a dedicated scrobbler instead of “my” solution, you’ll need to somehow access your cloud library, so that risk won’t go away, it might just shift to another app.
For now, considering the long-standing, high reputation of the BubbleUPnP, I estimate this risk to be rather low, but of course your personal reasoning might differ. The more secure option would be to use the official OneDrive app (or the official app of your preferred cloud provider), download the songs you want to listen to on your phone and then use USB Audio Player PRO to play that music locally. As always, security and convenience converge.
With BubbleUPnP being able to access your music in the cloud, you can already start listening to your music, but the app does not have an integrated scrobbler. So in the next step we’ll turn BubbleUPnP into a media server that provides access for USB Audio Player PRO.
In the BubbleUPnP settings, go to “Local and Cloud” -> “UPnP/DLNA media server settings” and set it up as follows:
The first setting, “Advertise on LAN”, basically enables media server functionality. You do not want to have this enabled while being on an untrusted network! Only use it for your home network or if you are connected to the internet via mobile data. Everyone else on the same network will be able to see your newly created media server!
This being a potential security risk you might forget about, I recommend you also tick “Display reminder on app startup”, to be reminded that you are advertising yourself on the network.
With this discovery setting enabled, USB Audio Player PRO will already be able to see the BubbleUPnP media server, but it does not have permissions yet to access any data. To fix this, we’ll also “Enable remote browsing”. Again, this is a potential security risk, so we want to restrict access to certain clients, in our scenario the same phone – this means, we can just put “127.0.0.1” as allowed IP address, so that other devices on the same network won’t have permission to browse your files, only your local host (which always has the loopback address 127.0.0.1) will be able to.
You’ll further want to restrict the kind of data that can be browsed by clicking on “Configure media allowed for remote browsing” in the same screen in BubbleUPnP. In my case, I might sure that only OneDrive is allowed and nothing else, following the principle of “least privilege” (ideally, we would narrow down permissions even further by specifying the OneDrive folder that contains our music library, but this level of granularity does not seem to be possible):
And that’s it, really!
Now, you can start up USB Audio Player PRO, set up Last.fm scrobbling in settings. Make sure to use your Last.fm username, not your email address, otherwise it will display a login error – took me a few hours to find that problem! You also might want to disable that scrobbles are only sent to Last.fm when connect to WiFi.
Then, in the USB Audio Player PRO side panel you can select “UPnP/DLNA servers” and voilà, your BubbleUPnP media server will appear. You can then browse exactly the directories that you allowed in BubbleUPnP and get an error message for all other paths. Other devices on the same network (if you are not just using mobile data, that is) will be able to see the media server too, but won’t be able to see any content and get an error message instead, stating that their IP address is not in the allowed list of BubbleUPnP (because we restricted it to 127.0.0.1).
Thanks to the built-in scrobbling of USB Audio Player PRO, it is much more reliable than an external scrobbler and I did not have any issues with songs being scrobbled multiple times or not at all.
A remaining issue specific to OneDrive is that BubbleUPnP fails to refresh the cloud session, so your music will stop playing after a while until you restart BubbleUPnP and access the OneDrive folder again to trigger a reauthentication. I’m currently following up with the developer to hopefully get this fixed soon.