Internet Radio
With WiFi connected, Safi streams internet radio. Quran radio stations broadcast recitation around the clock, and any station URL in a supported format works.
Supported streams
| Property | Supported |
|---|---|
| Codecs | MP3, AAC, HE-AAC, FLAC, WAV |
| Transport | HTTP and HTTPS (Icecast and Shoutcast style streams) |
| Bitrate | Up to 320 kbps; most Quran stations use 64 to 128 kbps |
| Metadata | ICY stream titles (the "now playing" text many stations embed) |
Not supported: playlists that require a browser (YouTube and similar), M4A/MP4 containers, and Ogg (Vorbis/Opus). If a URL ends in .m3u or .pls it is a playlist file, not a stream; open it in a text editor and use the direct URL inside it.
Playing a station
- Dashboard: the Radio page lists your saved stations; click one to play. The URL field at the top plays any stream directly without saving it.
- NFC: bind a station to a card and tapping it starts the stream, see NFC cards.
The display shows the station and, when the station provides ICY metadata, the current track or reciter name, which also appears live in the dashboard.
Managing stations
The dashboard ships with a set of built-in preset stations; the stations you add are stored on the device (so every browser and NFC card sees the same list). On the Radio page:
- Add: name plus stream URL.
- Delete: remove a saved station.
A starting point, all free Quran radio streams that were live at the time of writing:
| Station | URL |
|---|---|
| Tarateel | https://qurango.net/radio/tarateel |
| Various reciters, mp3quran mirrors | see mp3quran.net radio list |
Station URLs change over the years; when one dies, the dashboard shows a connection error and the device keeps retrying in the background with increasing delays.
Behavior on bad networks
Streaming is buffered on the device. Short WiFi hiccups play through from the buffer; longer drops trigger automatic reconnection with exponential backoff (1, 2, 4, 8 seconds, capped at 30). While reconnecting, the dashboard shows a "reconnecting" badge and playback resumes by itself as soon as the stream is back.
If audio ever stutters, the dashboard's underrun counter (Now Playing page) will show it: a nonzero count means the network could not keep up. The streaming internals chapter explains the buffering design and why the device favors a brief silence over dropping data.
Radio and the clock
Playing a stream requires only WiFi. But note that the scheduler will not fire until the clock has synchronized, which also needs the network; both normally happen within seconds of the first connection.