A project to control Tidal music playback on an Eversolo T8 streamer via Google Assistant voice commands.
Voice Command → Google Assistant → Middleware Server → Tidal API → Eversolo T8
Say something like "Play [song] by [artist] on my streamer" and Google Assistant will find the track on Tidal and play it on your Eversolo T8.
- Google Actions SDK lets you build a custom voice assistant action with intents like "Play [song] by [artist] on my streamer"
- Alternatively, IFTTT + Google Assistant is simpler but more limited (harder to extract dynamic song names cleanly)
- The Action sends a webhook POST to your middleware server with the parsed song/artist
A small Python or Node.js server that:
- Receives the parsed intent from Google
- Searches Tidal for the track via the Tidal API
- Sends playback commands to the Eversolo T8
- Tidal Developer API (
developer.tidal.com) supports OAuth2 + search + playback control - If your Eversolo T8 supports Tidal Connect (very likely — most current Eversolo streamers do), you can transfer playback directly to it as a device target via the API. This is the cleanest path.
Options depending on what the device exposes:
- Tidal Connect (preferred): If supported, Tidal treats it as a playback device — no separate Eversolo API needed
- UPnP/DLNA: The T8 almost certainly exposes a UPnP control point on your LAN. Libraries like
python-upnpclientcan control playback - Local HTTP API: Eversolo devices often expose undocumented REST endpoints on the local network (the companion app uses these — you can sniff traffic to find them)
| Component | Tool |
|---|---|
| Voice interface | Google Actions SDK (Node.js or Python fulfillment) |
| Middleware | Python (FastAPI or Flask) or Node.js (Express) |
| Music search/play | Tidal API + Tidal Connect |
| Device targeting | Tidal Connect device ID for the Eversolo T8 |
| Hosting | Local (Raspberry Pi / home server) or cloud (GCP Functions) |
- Set up a Tidal developer account and register an app to get API credentials
- Identify the Eversolo as a Tidal Connect device — authenticate with Tidal and list available devices to get its device ID
- Build the middleware server — an endpoint that accepts
{song, artist}, calls Tidal search, then calls Tidal's playback API targeting the Eversolo's device ID - Build the Google Action — define an intent that extracts song/artist from speech, then calls the middleware endpoint as the fulfillment webhook
- Test and refine the NLU (natural language understanding) for edge cases
Check whether the Eversolo T8 shows up in the Tidal app under "Connect" when on the same network. If it does, the Tidal Connect path is the simplest — it removes the need to reverse-engineer any Eversolo-specific protocol.
google-tidal-eversolo/
├── README.md
├── middleware/ # Python or Node.js fulfillment server
├── google-action/ # Google Actions SDK project
└── docs/ # Additional notes, API references, device findings
- Tidal Developer Portal
- Google Actions SDK
- Eversolo Official Site
- python-upnpclient (UPnP fallback option)