namida icon indicating copy to clipboard operation
namida copied to clipboard

[FEATURE REQUEST] Self-Hosted Music Streaming Support

Open 010101-sans opened this issue 2 months ago • 2 comments

Is your feature request related to a problem? Please describe.

I maintain a large self-hosted music library and would like to stream it like a personal streaming service from anywhere. Currently Namida supports only local playback, so I cannot access my library remotely or treat it like a streaming service.

Describe the solution you’d like

Enable support for streaming from a self-hosted music server so that :

  • My music files on a remote server/NAS can be accessed and streamed by Namida.
  • It should also read the remote library with full metadata, playlists and playback tracking.
  • Sync of metadata, playlists and listening history across devices.
  • Offline caching/download from my own collection for mobile use.
  • Authentication, user access control and encryption (optional) so I retain data ownership and privacy.

Describe alternatives you’ve considered

  • Uploading all my files to an external commercial streaming service (but this costs, and I also lose control).
  • Using free open source alternative mentioned below, but then I don't want to loose the Namida experience.

Apps / services

A note to the dev @MSOB7YY

I understand that this feature request is quite ambitious and may require substantial work perhaps even infrastructure changes.
Still, I wanted to share the idea because it could greatly expand Namida’s versatility, turning it into a true all in one music hub for both local and remote collections.
Even partial implementation or future consideration would be deeply appreciated.

010101-sans avatar Nov 06 '25 10:11 010101-sans

I have tried to put together an architecture that I think should work.

1. The Plan

Namida (the music player) stays as the app.
We simply add a small server that runs on a computer, NAS, or cloud instance.

That server will :

  • Index all music files (based on included and excluded folders configured during server setup).
  • Stream them securely to Namida wherever it's being used.
  • Handle user logins, playlists, and metadata sync.

2. The Flow

I. Setup

We can install or run the Namida Server (a lightweight program). It points to the music folder(s).

The server :

  • Scans all music files.
  • Reads the ID3 tags (title, album, artist, ...)
  • Stores that info in a small database for fast search.

II. Connect to the App

In Namida, we will add a new source :

Remote Server -> https://myhomeip:9000

We can then log in. Namida now knows where our personal music library lives.

III. Browsing & Playback

When we open Namida :

  • It fetches the list of artists/albums/tracks/... from the server with REST API.
  • If we tap on a song -> the app asks the server to stream that file.
  • The server reads the file from disk and sends it over HTTP.

If our phone can play the format (for example MP3, FLAC), it’s sent directly. If not, the server automatically converts it on the fly using ffmpeg (to MP3/AAC).

IV. Caching and Offline

If we enable offline mode :

  • Namida requests certain songs or playlists to download.
  • The server bundles them (or sends them individually).
  • The app stores them locally (in encrypted form - optional).

V. Sync and History

Each time we play a song :

  • The app sends “I’m playing Track X at time Y” back to the server.
  • This updates our play history, last-played position, and syncs across devices.

So if we start listening on our desktop and later open your phone, playback can resume from where we left off.

Note : More features like multiple users, server file management, etc can be added later.

010101-sans avatar Nov 08 '25 12:11 010101-sans

Image

010101-sans avatar Nov 09 '25 11:11 010101-sans

thanks a lot for the detailed proposal (and sry for late reply), as u know and mentioned, this feature was requested many times and still not a priority, altho i would love to see it one day

i was thinking about a simple approach where we just fetch everything (metadata) on startup/refresh, and then treat as as local library, but still would require much much work since most parts assume the files are on disk (all file operations like edit tags/index/etc)

now ur approach is more complex and more wide, it assumes that the server is the "main namida", and namida on device is just a receiver (or can be one), which is really really complex but also can help with #621 , im not sure if i would get into that stuff any soon, so sorry in advance, but one day hopefully ^^

MSOB7YY avatar Dec 17 '25 23:12 MSOB7YY

Thanks dev. Hopefully we'll get there someday.

010101-sans avatar Dec 18 '25 00:12 010101-sans