3.1 KiB
Frairable
Free your Airable-hindered Frontier Smart radio, at least somewhat.
What? Why?
Some newer radios (you know, those boxes with speakers and antennas playing music) built around Frontier Smart no longer use the Frontier Nuvola services, and thus sadly, KIMB-technologies/Radio-API no longer works with them. Instead, they seem to use airable.wifiradiofrontier.com, which comes with its own quirks:
- Devices no longer "log in" the old way and don't expose an unique ID.
- Every request uses a fresh authorization header.
- You may have been struck by a 403 while trying to access that Airable link. Say goodbye to sniffing around on your own, and goodbye to replaying requests easily!
- Marking stations as favs and adding new stations is now handled on the device itself, instead of being handled by the server.
- API requests are performed through HTTPS (port 443) instead of HTTP (port 80)...
- ... yet (at least with the device I own,) you can throw any certificate at the device and it will eat it up. MITM ahoy!
This repo contains a single php file that sits in between your radio and the Airable API, adding new menu entries to the server's responses.
How can I use this?
The way I've set it up on my Raspberry Pi 4b is absolutely cursed and there's certainly better ways to do it, but it's 04:34am as I'm clacking my keys right now and I want sleep, so here's my setup:
- Home Assistant OS
- Yes, I know running custom software outside of addons (which are just neatly packaged docker containers with special rules) isn't supported, but if it works in such a restrictive environment, then it surely works everywhere.
- linuxserver/nginx
- Easy to set up, supports a wide range of platforms, and I don't need any of the fancyness that comes with linuxserver/swag (certbot) as it sits in my local network.
- The default config uses
index.php
for all requests, which is exactly what we want! Yay!
- Plop
index.php
and theradios
dir intowww
(or set up a mount for it). - In your favourite DNS adblocker (Pi-hole or AdGuard Home), redirect
airable.wifiradiofrontier.com
to your device's IP. - Put a web radio into the radios dir (using my existing config as an example), or create your own:
- ???
- Profit!
TL;DR: Set up a web server on ports 80 and 443, make it use index.php
for every request, play around with the radios
folder.
Any hints for following your footsteps?
mitmweb --set connection_strategy=lazy --ssl-insecure --mode reverse:https://airable.wifiradiofrontier.com@443
- The dumps folder contains some things which might get useful if Airable ever goes down / if anyone wants to come up with a fully self-hosted replacement.