Custom firmware wäre schön - aber je nach Szenario reicht das, was die Russen da auf http://ximiraga.ru/ hochgezogen haben bzw. der Quellcode auf https://github.com/andr68rus/miwifiradio um sich dann auch eigene Radios reinsetzten zu können.
Das Grundprinzip ist erstaunlich einfach:
* stream passend mit ffmpeg encoden
* der Mi Home app vorgaukeln, dass man api.ximalaya.com ist (z.b. Host editor oder DNS) und dort http://api.ximalaya.com/openapi-gateway-app/live/radios selbst zur verfügung stellen (das muss man eigentlich nur ein mal machen, wenn das radio alle stations kennt braucht man die app eigentlich ja nicht weiter)
* eigene sender spielen
Da ich ein etwas anderes Einsatzszenario im Kopf hatte als die Jungs, habe ich bei mir einfach den Encoder immer laufen (deren Script stoppt das Encoden von nicht gehörten streams und startet bei request eines Streams einen neuen Encoder und verzögert dann um 7 Sekunden) um im Badezimmer schneller von "Licht an" zu "Musik läuft" zu kommen. Ich hab mir testweise ne VM mit deren nginx setup gemacht (das lief) und dann die basics die ich brauche etwas anders umgesetzt. Ohne Datenbank im Hintergrund, ohne multiuser, ohne viele Streams etc...
Ein paar Stichworte dazu hab ich dazu mal online gestellt:
Xiaomi Mi Internet Radio custom station(s) (http://www.mylifesucks.de/oss/xiaomiwifiradio/)
Ist evtl. einfacher sich aus den Basics was eigenes aufzubauen als gleich die full-featured multiuser variante zu nehmen. Oder um kurz mal zu testen ob einem das gefällt bevor man dann die Datenbank etc. aufsetzt.
Mir reicht die kleine Lösung erstmal völlig.
Und ne kleine Info: Ich bekomme mein Radio weder aufm Tablet noch aufm Smartphone mit der aktuellen Mi Home verbunden (4.0.8). Mit einer alten Version (3.7.15) geht es - evtl. hilft der Tipp auch jemandem