Journey to self-hosting my own music: (From Napster to Navidrome).

For the past year, Navidrome has been curating my musical experience. Before that, I relied on Plexamp as my go-to for self-hosted music. While Plexamp did its job adequately, I felt it was time to distance myself from corporate platforms and explore open-source alternatives.

As I delved into my search, a realization dawned upon me. My expectations and standards were somewhat lofty for projects driven by volunteers and lacking a profit motive. Prior to my journey into building a personal server, I had developed an addiction to music streaming services, These services seamlessly intertwined my two primary passions: technology and music.

While I had evolved alongside the industry and grown accustomed to the modern conveniences they now offer, my journey wasn't always marked by such ease. It's worth retracing my steps to understand how I arrived at my present position.

From day one, I was hooked. The moment I first encountered Napster, I eagerly installed it on my computer. It marked a pivotal point in my life. Never before had I been exposed to such a vast music library. Up until then, I had been limited to the CDs generously lent to me by my parents and cousins. If only they had the same taste.

However, Napster opened the floodgates, and I downloaded everything in sight until my laptop's HDD was bursting at the seams. As you may recall though, the Napster saga eventually met its demise, yet its name surprisingly lives on due to its acquisition by Rhapsody.

The proto-streaming years

When it comes to music services, one that I hold dear in my memory is Zune Music. Zune music was almost like a proto-streaming service. I recall the simple yet meaningful experience of navigating its catalog, selecting tracks, and transferring them to my Zune player.

My favorite aspect that stood out was the option to retain ten tracks every month, which added a sense of permanence to my collection. Zune Music's approach resonated with me, offering a model that catered to my preferences.

The service's user-centric approach was quite remarkable, even though the viability of such a model for the broader music industry was questionable. Regardless, Zune Music remains a cherished memory for me. It represents a time when music streaming was evolving and trying out new ways to engage music enthusiasts.

The memories of those days evoke a mix of satisfaction and appreciation for an experience that was uniquely enjoyable and left a lasting impression.

The first dollars spent

MOG Desktop

Sometime later, I stumbled upon a game-changing app on my mobile phone. It was a modest streaming service that’s likely forgotten by most: “MOG.”

MOG was my first exposure to a “modern” music streaming service. No sooner than when I discovered it, it became the first service I subscribed to with my own money. If only it was as great as it sounded.

It was a fair trade: I pay a fee of $9.99, and it rewards me with crashing after every use, and frustration with subpar performance. Despite its shortcomings, I found it impossible to sever ties.

MOG was the sole service offering 320kb/s streaming at the time, and while it often felt like an erratic roller coaster, those fleeting moments of seamless use were akin to being on cloud nine. In retrospect, I believe MOG played a pivotal role in establishing 320kb/s as the industry standard.

Sadly, MOG eventually met its demise. Competing services, while it was operational, adopted its hallmark feature: high-quality music streaming at 320kb/s. Nevertheless, while MOG struggled to keep pace with the evolving landscape, my attention had already shifted to another platform called: rdio.

If MOG was my first love, rdio was my soulmate.

Rdio, you remain etched in my memory. Just as you were blossoming into your true essence, an untimely bankruptcy intervened.

Rdio boasted an exquisitely designed web UI, app, and queuing system that modern platforms have yet to rival. Perhaps you’re familiar with Spotify Connect by now—an innovation that enables seamless music streaming across nearby devices. Well, long before Spotify introduced their modest version, rdio had already pioneered this feature.

The original incarnation from rdio not only facilitated music sharing across nearby devices but also maintained a perpetual queue accessible from every rdio interface. In contrast, Spotify’s approach syncs only when a new device connects or when you’re specifically using the desktop version.

Rdio also led the way in crafting personalized song and track radio stations. They harnessed the personal curation power of the original Echo Nest service—a service that Spotify would later acquire and withdraw from competitors.

The radio stations curated by rdio displayed remarkable diversity, offering an exceptional avenue for music exploration. In contrast, contemporary Spotify tends to prioritize songs from your library, sparingly interspersing new discoveries. Moreover, rdio introduced a radio station named “My FM,” harmoniously blending familiar favorites, frequently played tunes, and new finds into an effortlessly flowing listening experience.

I could easily dedicate an entire post to the virtues of rdio, just expressing how much I yearn for its return. To this day, I find their interface unrivaled, a height of streaming services designs. Yet, it’s time to pivot toward the next chapter.

Scrambling in the search for better

The rest of the journey devolves into an addict chasing the dragon trying to find the high that rdio seared into my heart. I tried them all: Spotify, Deezer, Tidal (pre- Jay-Z), Qobuz, Pandora, Amazon Music, (new) Napster, Beats Music, Apple Music, Soundcloud, 8tracks, Google Play Music, YouTube Music, Slacker Radio, Live X Live, Groove Shark, Songza IDAGIO, etc.

Yet, each of these options seemed to lack some aspect present in their competitors. Among them, Google Play Music came close, only to be replaced by a lesser alternative.

Fueled by my recent experience with Google Play Music’s music locker, I sought a solution. Although I attempted to use VOX Music Cloud, it primarily catered to Apple devices, and my oscillation between iPhone and Pixel rendered it less viable. As the shortcomings of YouTube Music became apparent, I recognized it was time for me to take matters into my own hands.

The Plex Era: A New Beginning.

The solution materialized in Plex, which I installed on an older, modest gaming computer I had constructed five years prior—an i5 6400 with a GTX 1050ti. This neglected machine found new purpose, as the lackluster performance of video streaming services during the pandemic prompted me to repurpose it.

The endeavor, albeit fraught with challenges stemming from my lack of expertise, culminated in the restoration of my musical enjoyment.

Streaming services had inadvertently robbed me of something precious: the intimate connection with my music. The playlist-driven approach was fantastic for discovery and personal expression through curated selections. However, I had never truly acquainted myself with the names of the artists. Even if they had created my favorite tracks, I might have remained oblivious to their identities.

Contemplating the state of my music engagement left me disheartened. Yet, Plexamp revitalized my experience, leading me to indulge in full albums, revisiting long-forgotten favorites, and acquiring music from Bandcamp to appreciate it in the artist’s intended context—free from algorithms and predefined playlists.

Plexamp’s interface facilitated a seamless transition from modern designs. Its elegant craftsmanship included a “track radio” feature for moments when I sought spontaneity. As its feature set expanded, I found myself ensnared in the same cycle. I became preoccupied with testing Plexamp’s algorithmic responses to the song at hand, diverting my attention from the simple act of listening.

This distraction contrasted sharply with my mindset just a few years earlier. My concerns extended to the financial viability of the company behind Plex, as the absence of a clear revenue path raised uncertainties. This realization compelled me to seek a more sustainable and principled alternative.

My journey led me to Jellyfin initially, but certain issues arose that aren’t pertinent to this narrative. Ultimately, I found my way to Navidrome.

The journey's (current) conclusion

Given my unfamiliarity with this music server, my exploration might not delve into exhaustive detail. Prior to encountering Navidrome, I had no knowledge of anything related to Subsonic, save for its icon. An additional challenge emerged: how to access music on the go while streaming from my server.

Plex had made this process straightforward—open a port on the router, set up a few firewall rules, and mobile listening commenced. However, Navidrome required more complex solutions, such as a VPN like Tailscale, Cloudflare Zero Trust, or a reverse proxy with a custom domain name. The VPN’s limitations dissuaded me, Cloudflare’s suitability remained uncertain, leaving reverse proxying as my only viable option.

Through assistance of chat bots, and a couple days of swearing, I had my own Navidrome server.

Navidrome is an intriguing music server with a dedicated web UI for music. The interface is a bit dated, but it is functional. Web browser playback does not support gapless functionality, but there are many Subsonic apps that do.

The world of self-hosted applications posed a challenge to my expectations. Many of the applications were created by hobbyists or individuals who were new to software development. This inexperience was sometimes evident in the quality of the applications. In contrast, the familiar offerings of software from large companies are backed by billions of dollars and a team of full-time developers.

I have found peace in using this service. It has become quite comfortable, and its development path looks bright with the new v2 Subsonic API. I have settled on Symfonium for Android, Tauon/Feishin for Desktop, and play:sub for iOS.

It is so good to be self-serving after all these years.

#selfhosting #music #navidrome #tech


Leave your comments below: Discuss... | Reply by email...