Streaming Platforms as Software Infrastructure

A photo of a computer screen showing HTML code with a variety of color formatting.

Audio streaming services are a great example of software infrastructure. Many people take it as given that they must pay Apple Music, Spotify, and similar tech companies to access this content and accept that the creators don’t get squat. It’s the digital version of “we don’t pay but it’s great exposure!”

There is another way. There are numerous open source music streaming servers you could use to host and stream your own music collection but with two big issues:

  1. You have to be pretty geeky to deploy and self-host (most folks don’t even know what that means) these servers.
  2. Having numerous self-hosted servers undermines economies of scale and network effects that come from having shared services.

Here are some of the options, information about self-hosting along with some basic concepts, and explanation of why cooperative hosting makes a lot of sense.

A “host” is simply a computer that runs software anyone can access via the internet, including means to limit access via user accounts and authentication. Authentication is done, like almost everything over the internet, by a set of protocols, a set of conventions codified in software that govern how devices and systems communicate, connect, and exchange information. The web runs on Hypertext Transport Protocol (HTTP), for example, and most audio stream protocols run over HTTP, including:

  • HTTP Live Streaming (HLS): Developed by Apple, HLS segments audio into small files and provides a playlist to the client, allowing it to adapt to network changes by switching to different bitrates.
  • MPEG-DASH: An international standard for adaptive streaming, MPEG-DASH provides similar functionality to HLS, breaking content into chunks and allowing the player to select the optimal quality.
  • WebRTC: A modern, open-source technology that enables real-time streaming of audio and video directly between browsers and devices, offering low latency for interactive applications.
  • Secure Reliable Transport (SRT): an open-source protocol designed to transmit high-quality video content over public networks.

A key function that must accompany these protocols is a means for encoding and decoding audio/video streams, a “codec,” including FLAC, Opus, Theora, Vorbis, WebM, and various codecs that support MPEG standard. BTW, see https://getstream.io/glossary/ for a thorough list of related terms. There are also sets of rules and protocols, called application-program interfaces (API), that allow different software applications to communicate and interact with each other, acting as an intermediary, defining how one program can request services or data from another, and how the response will be delivered, specifically the Subsonic API.

Open source software (OSS) is freely available applications that anyone can install and use as long as you abide by the license terms. Self-hosted streaming servers allow you to access your music library via various devices like web browsers and mobile apps. Some are designed specifically for music, like Airsonic and Navidrome, others, such as Funkwhale, Jellyfin and Plex, are more general media servers that also handle music. Some popular open-source options are:

  • Airsonic: a free, web-based media streamer that provides access to your music. It allows for simultaneous streaming to multiple players and sharing with friends.
  • Ampache: a free, self-hosted media server with a web interface for music streaming.
  • Audiobookshelf: primarily audiobooks, but with robust podcast and music support, that syncs playback progress across devices via dedicated open-source mobile apps for Android and iOS.
  • Funkwhale: a federated, ActivityPub-based platform focused on sharing and listening to music within a decentralized community.
  • Icecast: a streaming audio/video server that can be used to create an Internet radio station, a privately running jukebox, and similar things using Ogg (Vorbis and Theora), Opus, WebM and MP3 streams.
  • Jellyfin: a fully free and open-source media server that can stream your music along with movies and TV shows.
  • Koel: a personal, web-based music streaming server.
  • Mopidy: aPython-based server and web client that supports streaming from local files, YouTube, SoundCloud, and more.
  • MStream: an open-source, self-hosted music streaming server with its own companion apps and a clean, intuitive interface.
  • Navidrome: a modern, personal music streaming server that gives you access to your collection from any browser or mobile device, similar to Spotify but for your own music. It is built with GoLang and is Subsonic API compatible.
  • Owncast: designed for live streaming with an interactive web chat with the ability to broadcast music sessions, podcasts, or other content that integrates with the Fediverse for wider social reach.
  • Rauversion: an open-source music platform that empowers artists to share, distribute, and monetize their music directly with fans. Check out the original instance, which is in Spanish, at https://rauversion.com/.
  • Raveberry: a multi-user music server project focusing on user participation.
  • Supysonic: a Python implementation of the Subsonic server API, making it compatible with various Subsonic clients.
  • SwingMusic: a self-hosted music player and streaming server for local audio files. 

Key factors to consider and specific features to look for in a streaming server include:

  • Community & Development: Check for active development and community support, especially if you plan to use the server long-term.
  • Ease of Use: Some servers, like MStream, are known for being straightforward to set up and use, while others like Navidrome offer a more Spotify-like experience.
  • Fediverse access: The fediverse a decentralized network of independent social media platforms that use open-source software and the ActivityPub protocol to communicate and interoperate, allowing users on one platform to follow and interact with users on others, similar to how different email services can communicate with each other. This federated model contrasts with traditional, centralized social media platforms like Facebook or Twitter, giving users greater control over their data, content, and community by allowing them to choose their preferred server or "instance" and still connect with others across the entire network.
  • Mobile apps: Support for iOS and Android devices. There are a wide range of free, open source audio/streaming clients, including AntennaPod (Android only), Podverse (iOS, Android, Web), and VLC.
  • Multi-user support: Allows multiple people to use the server simultaneously.
  • Platform: Some servers are optimized for specific hardware, like Navidrome for Raspberry Pis, while others are more general.
  • Subsonic API compatibility: Allows you to use third-party music players that support the Subsonic protocol.
  • Transcoding: Automatically converts audio files to a more suitable format for streaming to different devices.
  • Web-based interface: Access your music from any web browser. 

More insights

Get ready to transform your operations

Sign up for a free trial and discover a world of possibilities to elevate your outreach and engagement strategies