Play MP3s straight off a NAS, a spare box with nginx on it, or any other HTTP server the radio can reach — browse its folders on the radio's screen or in the web player, with the track length read out of the file itself. No cloud, no account, nothing uploaded anywhere. The config below is the whole of it. Serving it costs almost nothing: this was tested under nginx, and on an ESP32-P4 handing out files from its own SD card, where it runs without trouble.
One thing, and it is the thing people trip on: answer a directory
request with JSON. AtlasCube does not scrape HTML index pages — it
parses the listing nginx produces with autoindex_format json.
Point it at a plain HTML index and it will tell you so rather than
pretending the folder is empty.
Plain http:// only — the radio refuses
https:// here and does not follow redirects, so a host that
pushes everything to HTTPS will not work at all. That is also the reason a
server on your own network is the easy answer: there is no TLS on this path
and no authentication, so anything you put on a public host is readable by
anyone who finds it, and the traffic crosses the internet in the clear. It
will work from anywhere the radio can reach — whether it should is your
call, not a limitation.
server {
listen 8090;
server_name _;
root /srv/music;
charset utf-8;
sendfile on;
location / {
autoindex on;
autoindex_format json;
}
}
autoindex on;autoindex_format json; |
The listing itself. Without the second directive nginx serves an HTML page and the radio reports “Enable nginx autoindex_format json”. |
charset utf-8; |
Track and folder names outside ASCII. The device keeps names as raw UTF-8 and percent-encodes them when it builds a URL, so the listing has to be UTF-8 to begin with. |
root /srv/music; |
The folder tree you want to browse. Sub-folders become the hierarchy you walk on the device. |
listen 8090; |
Any port you like — it goes into the address you give the radio. |
sendfile on; |
Plain throughput. Not required. |
http://your-nas:8090/. Keep the trailing
slash.Once a server is set, Network Music joins the screens you swipe through on the device, with its own folder browser. Picking a track in the web player and picking one on the radio do the same thing — both build the same queue, so the elapsed time, the length and Previous / Next agree wherever you look.
The length comes from the file's own header, so it is exact for VBR as well as CBR — and an album whose tag carries cover art, pushing the audio a few hundred kilobytes in, is read just the same: the radio works out where the audio starts and fetches a kilobyte from there.
MP3 only for now, at most 128 entries per folder, and the end of a folder stops playback — there is no shuffle or repeat here yet.