FOSS, linux, miscellaneous, networking, nextcloud, privacy

Enjoy your self hosted music with Diffuse Music Player

Distributed Music for the Win!


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 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:






  1. Select Sources
  2. Select Add a New Source
  3. 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:

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…

Diffuse Player

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.

Are you still using S3 and Spotify?
Amazon S3 yes, all my music is still on there.  Haven’t used Spotify in years.
What have you learned from working on Diffuse?
Quite a bit, ranging over a lot of different subjects:
– 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.
Are you referring to CORS support missing from WebDAV, or something else?
Yes, that’s the biggest issue for sure.
You have quite a few integrations, including IPFS and remoteStorage.  Would you recommend any particular one to users curious about streaming their own music vs. users concerned with privacy?
Well, remoteStorage is purely used for authentication, or in other words, as the information database that contains all the music metadata and sources data.  That said, for music storage, I like Amazon S3 the most at the moment, because it’s fast and secure. You can even set permissions for the keys you use. For example, you can set the permission to read-only, so when someone else gets hold of your keys they can only read your data, not make any adjustments. Azure Blob Storage works similar I think, but I haven’t used it much.  IPFS, on the other hand, is all public data.
Do you self host much software?

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.

What role does the HMAC implementation serve in Diffuse?
HMAC is used to make signatures that are part of URLs to private data, which in turn is used to play the audio file.  Different services use different security measures. Amazon S3 uses HMAC amongst other things.
Would you consider Diffuse to be secure?
Not really, the user’s data is not encrypted. But the user does control their data, so there’s that.
I would like to encrypt the user’s data in version 2, but I haven’t found a great/simple solution yet.
Are there other projects you would recommend for those of us willing to self-host?
Sadly no. I haven’t found the need to self-host anything except music.
I’m open to suggestions though.
I have to mention the look and feel of Diffuse is very engaging and intuitive.
What inspired your UI? Other projects on your Github also have a strong visual component, which I do not see in most software.
Thanks for the kind words!
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:

It’s already iteration number 3, the first iteration was like 4-5 years ago.
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.
Thanks for your time, and all the best to you and the project!
Thank you!

Author: sunjam

Sunjam is a performer and musician in San Francisco. He plays around with open source tools and has a ton of fun doing it! If you enjoy my articles you are welcome to send me a crypto tip. BTC: 3GiRvHrpyHsD2fTFQJGrDGUc4QgaoYjc8g ETH: 0x152bE83216CDb4fC199c78048aBF6ee17d88AdA5 LTC: MQ25ZCF9mJ46xn2bcdfEFKLK3QxgXivoEs


  1. 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.

        1. 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!

        2. 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.

  2. 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.

    1. 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:

      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:

      1. 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).

        1. 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.

Leave a Reply to Steven Vandevelde Cancel reply

Your email address will not be published. Required fields are marked *