Amber

That's it, I'm done with Spotify and Youtube Music. I'm going to make my own music streaming platform.

How hard can it be?

Amber Server Amber Web Client

Why

My offline music library, that I have been growing for the last 10 years, has now over a thousand songs. Over the past few years my personal music playback experience on YT Music and Spotify has been degrading. I find that more often than not a randomized playlist of my music library is much better than what big tech provides. Which is surprising given that at this point Google has more data points on me than some people in my life do.

If I build a simple music streaming server, I can then use it as a launchpad to integrate and improve existing infrastructure I have like my ytdlp wrapper that helps with my library management.

I can then use YT Music for just discovery until a solution can be found for that too.

Bottom line, building this is going to be fun

Use Cases

Web Client

Some screenshots of the player:

Server Design

The playback and library management features are what I am interested in. So for the actual business of streaming, I'm going to work with boring technologies™. The HLS protocol appears to be the ol' reliable in this space, and there is a good client library for it that I can use in the webapp. And for serving files, Im going to use nginx.

The server is build with python flask, and uses sqlite for db. Ill use the librosa library to compute low level properties about songs, which I hope to use later to build better mood based playlists.

I run my server instance on my homelab. I used Tailscale to set up my network. Its a wonderful tool that was easy to setup, and one I will definitely use a lot more in future projects.