Diffuse is a music player that supports various services such as Google Drive and S3, plus decentralized locations such as Webdav and IPFS. It is very easy to use and the latest, stable Electron release can be installed to Windows, MacOS or Linux desktops from here. Music is simply displayed as a list and can be further sorted into playlists. Basic EQ and volume control are available under settings. Development is tracked via the project’s github page. The website Diffuse.sh is a fully functional demo instance, so just start playing music and enjoy!
You can either run Diffuse as a desktop application or a more limited Web application. Only major difference between both options is Nextcloud storage (WebDAV), local storage and keyboard shortcuts are only supported on the desktop Diffuse application. To use the Desktop application with Nextcloud simply:
- Select Sources
- Select Add a New Source
- Select WebDav and add your account credentials.
If you prefer to use the Web Application you’ll need to stick to IPFS, Google Drive, Azure, or S3 Storage.
What I like:
- Easiest Nextcloud compatible Desktop application I’ve ever used!
- Pretty!
What I hope is improved:
- Gap less playback, or adding some sort of cache to avoid pauses between tracks.
- WebDAV support in Web Application
It is the ease of use and eye catching design that stand out for me, plus actual support for the IPFS Protocol. Most applications available for self-hosters are ugly and unfriendly, so I’m excited to see a piece of software visually bucking that trend. Development is on-going, so it’ll be exciting to continue following this project. An interview with the developer follows…
An Interview with the Lead Developer, Steven Vandevelde
What inspired you to create Diffuse?
I used Spotify quite a bit before, but now and then they would remove music that I liked.
A large part of my music collection also can’t be found on streaming services.
I decided then to just put everything on Amazon S3 and make my own music “streaming” app.
Amazon S3 yes, all my music is still on there. Haven’t used Spotify in years.
– Cryptography (I wrote my own HMAC implementation and a lot of SHA usage)
– Talking to other services is not easy, they all have their own idea of security
– Protocols are great, except that, a lot of software that uses them don’t implement them properly (I’m looking at you WebDAV)
– Audio formats, web workers, string encodings, swift/ios, native apps, etc.
I don’t really use much software that is hosted. Like Diffuse, I tend to use software that runs on my OS and uses local/cloud storage to store things.

I would like to encrypt the user’s data in version 2, but I haven’t found a great/simple solution yet.
Sadly no. I haven’t found the need to self-host anything except music.
I’m open to suggestions though.
What inspired your UI? Other projects on your Github also have a strong visual component, which I do not see in most software.
I got inspired a lot by this old mixing console I got back in the day.
I can’t find a picture of the one I got, but it looked somewhat like this:

So I had some time to make it look good.
I appreciate a good UI so I try to reflect that as well in my work.
Thank you!
Is it possible to expand on the “enter you credentials” part? I’ve tried to enter multiple iterations into the Directory field and none of them seem to result in tracks being found. I’ve double and triple checked the Host Url, Username and Password so it can only be the directory.
Hey Robert, creator of Diffuse here.
I’m assuming you’re trying to use `Amazon S3`? Or is it something like https://www.minio.io/ ?
I just noticed there’s something wrong with the form, the `host` should be optional but it isn’t.
I’m trying to set it up with Webdav and my Nextcloud server.
When you let the mouse cursor rest for a bit on the red error icon, does it say anything (helpful)? Could you make an issue on Github if you’re still having problems with it? Would love to help you further. Thanks!
It just tells me its Processing perhaps I’m just not waiting long enough. If I do end up getting an error I will post it to Github. Thanks for your help.
Very nice article and interview!
The WebDAV integration is very neat. Are there any plans to bring Diffuse to Android? Because I rather find that I want to listen to my music on the go. At home I can just use my DLNA server.
Hi tct, thanks for the kind words. I’m not aware of a port to Android being considered at this time, although you can ask the dev here on the project Github: https://github.com/icidasset/diffuse/issues
If you are on Nextcloud, you can install the Music app with your webdav folder + an Ampache player for Android mobile phone as detailed here: https://help.nextcloud.com/t/tutorial-stream-your-music-everywhere-with-nextcloud-music-and-power-ampache/35739
Thank you, I know about the ampache method and I actually wrote about how to use Kodi with Nextcloud here on ownyourbits 😉
But having a “native” WebDAV player on Android would be really cool. Since Linux is already supported, I might try to play around with it in the Android SDK (but my knowledge about this is kind of limited).
I see. I found Soumi player for Android via a quick search. Tried to connect my music folder via WebDAV and am running into an “Error: Unknown Host exception” that I’ve reported to the devs. Perhaps you can try it out and let us know how it goes.
https://play.google.com/store/apps/details?id=com.techsoftpl.musicplayer&hl=en_US
I also had a look at Soumi, but did’t like about it that it’s not maintained anymore. The last update was 2 years ago.
Hey tct! I’d love to have it on mobile as well.
Unfortunately I don’t have that much time to work on this,
so it’ll take a while until I get at that point. But hopefully someday!
Could anyone tell me if these players work on Google Chrome? Many have lost access. Everything works on Mozilla
Thanks