One really cool feature of the Funkwhale platform lies in its ability to stream media directly to mobile devices. This is made possible through its partial adoption of the Subsonic API, which is supported by a handful of different mobile clients on Android and iOS.
While the Subsonic API isn’t fully adopted, Funkwhale is capable of the following interactions:
- Search (artists, albums, tracks)
- Common library browsing using ID3 tags (list artists, albums, etc.)
- Playlist management
- Stars (which is mapped to Funkwhale’s favorites)
Currently, the server isn’t capable of transcoding, chatting, administration, or dealing with shares through this set of APIs, but those may come in the near future.
1. Choose a Client
There are a number of clients for mobile and desktop that reportedly work well with Funkwhale. Here’s a breakdown on what’s available and proven to work so far.
- UltraSonic – A “full-featured” client, UltraSonic kind of carries an Android 3.0 aesthetic. It’s a little dark for my tastes, but it’s free and open, and supports all of the APIs that Funkwhale offers. (F-Droid / Google Play)
- DSub – This is the client I tested with Funkwhale, and it works equally well. The UI feels a little bit cleaner, and seems to follow the material design guidelines a little more closely. It’s also free and open source. (F-Droid / Google Play)
- play:Sub – Although the client costs $4.99, the developer behind this client actually puts in some extra effort to ensure compatibility with Funkwhale. It’s reported to work really well here. (App Store)
- subStreamer – This app has a bit more of an “iTunes” look and feel to it, and it’s reported to also work with Funkwhale. This client is $0. (App Store)
- Clementine – the well-loved cross-platform music player works on Windows, Mac OSX, and GNU/Linux, and supports Funkwhale for streaming. However, it does not implement advanced features such as playlist management, search or stars. (Website)
- Mobydick – this is a new project by Baptiste Gelez, creator of the Plume federated blogging platform. It appears to be a dedicated client for elementaryOS. We’ll be covering this in an upcoming article! (Code Repo / Binaries)
2. Join a Funkwhale Instance
For the sake of the demonstration, we’re going to join a fairly well-known public instance, Open Audio. This Funkwhale instance only offers Creative Commons and Public Domain music that’s free to share. Registration is free, and incredibly easy to do.
3. Enable Subsonic API
Go to Settings > Subsonic API password > Request a Password
After doing this, a random password for the API will be generated. This is what you’ll need to provide the mobile app that you provided in Step 1.
4. Add Server Credentials
Here, you’ll need to plug in server credentials to your Subsonic-compatible app of choice. For the sake of the example, we’re going to use DSub.
In DSub, open up Settings > Servers > Add Server. You’ll need to perform this step prior to going online with the DSub client.
After that, it’s time to actually add the server credentials. Here’s an example of how I filled out mine:
For the Username field, you’ll want to provide your actual username as recognized by the server. The Password field is where you’ll plug in the Subsonic API password that Funkwhale generated for you. You don’t want to use your login password for this.
Once that’s all said and done, you’ll want to go online and test the connection. In the left-hand sidebar, select Go Online, and feel free to go back to the Servers menu and click Test Connection on the bottom.
5. Start Listening!
Now that the connection is all set up, we can actually start streaming music from Funkwhale. The Library view is kind of messy, and can end up populated with less-than-useful metadata – instead, I recommend navigating to “Home” and searching for music alphabetically.
If you’ve added any playlists on the server-side, you can also easily access them (and all of the related tracks) by navigating to Playlists.
Now it’s over to you! Feel free to experiment with your own Funkwhale server and Subsonic clients, and find one that works the best for your own needs.