Spotify vs Apple Music Discovery My ESP32 Project Won
— 6 min read
Answer: My $15 ESP32 controller lets me out-discover both Spotify and Apple Music by forcing each service to follow simple, tactile commands.
In practice, the board bridges my intent with the hidden APIs, cutting through endless scrolling and delivering fresh tracks faster than any native recommendation engine.
Why Music Discovery Is Broken in Your Streaming App
Key Takeaways
- Infinite scroll hides true discovery.
- Algorithms prioritize passive listening.
- High-friction UI forces reliance on recommendations.
- Physical controls restore intentionality.
- ESP32 hacks give direct API access.
Every major streaming service buries discovery behind an infinite scroll wall. You swipe, you get another track, and the loop never ends. The UI hides the deeper catalog, showing only what the algorithm thinks you’ll like.
This design creates passive consumption. A study of user behavior shows listeners often stay on the first few suggestions instead of exploring further. The result is a soundtrack that mirrors the platform’s own taste, not yours.
Notifications and complex menus add friction. To find a new artist you have to dig through “Browse”, “Radio”, or “Made for You” sections. Each tap is a decision point, but the path is cluttered, making it easy to quit and fall back on the “Auto-Play” queue.When I first tried to discover new indie folk on Apple Music, I spent ten minutes navigating to the “Artist Radio” feature, only to be served mainstream pop. Spotify’s “Discover Weekly” felt like a mixtape curated by an algorithm that never learned my love for lo-fi beats. The systems both prioritize keeping you in the app, not exposing you to unknown music.
These hurdles turn discovery into a chore, reinforcing the platforms’ control over what you hear. The hidden APIs, however, contain the raw recommendation data that can be accessed with a simple hardware trigger.
How to Discover Music with Tangible Custom Hardware
My ESP32 board costs about $15 and turns abstract clicks into concrete actions. I soldered three arcade-style push buttons to the GPIO pins, each mapped to a specific function: skip, like, or launch a similarity search.
The hardware acts as a bridge between intention and API call. When I press the “Discover” button, the board sends a request to Spotify’s “Get Recommendations” endpoint using a seed track I previously liked. The response returns a list of tracks that match the seed’s energy, tempo, and valence.
For Apple Music, the same button triggers the “Play Similar” endpoint. I wrote a lightweight Python script that runs on the ESP32’s MicroPython interpreter, handling OAuth tokens for both services. The script parses the JSON response and streams the first track directly to my Bluetooth speaker.
Because the buttons are physical, each press forces a moment of thought. I no longer swipe mindlessly; I decide whether I want a fresh track or to save the current one. The tactile feedback of the button click creates a mental pause that an on-screen swipe never provides.
Beyond buttons, I added a rotary encoder to adjust Spotify’s valence parameter on the fly. Turning the knob clockwise raises the “happiness” score, pulling more upbeat songs. Turning it counter-clockwise fetches moodier tracks. This analog control layer is impossible on the standard UI.
All components fit inside a small project box. The total cost stays under $25, and the code is open-source on GitHub, allowing anyone to fork and customize. The result is a portable, purpose-built discovery tool that works wherever you go.
The Music Discovery Tools Streaming Services Hide
Both Spotify and Apple Music expose powerful developer APIs that are rarely showcased in the consumer app. These APIs let you query deep-catalog data, filter by acousticness, energy, and even lyrical themes.
Spotify’s “Recommendations” endpoint lets you specify up to five seed values - artists, tracks, or genres - and adjust attributes like tempo, danceability, and valence. Apple Music’s “Catalog Search” API supports complex queries, returning results sorted by relevance, popularity, or release date.
By calling these endpoints directly, I bypass the UI altogether. Instead of watching a scrolling feed, the ESP32 triggers a single HTTP GET request that returns a curated list in milliseconds. The response can then be parsed and sent to the playback device.
To illustrate the differences, see the table below:
| Feature | Spotify API | Apple Music API |
|---|---|---|
| Seed Types | Artist, Track, Genre | Artist, Album, Song |
| Attribute Controls | Energy, Valence, Tempo, Danceability | Genre, Release Date, Popularity |
| Rate Limits | 10 requests/second per app | 20 requests/second per developer token |
These hidden tools let me program a single button to fetch songs with a specific energy level, something the native apps can’t expose without navigating multiple screens.
Rakuten recently launched an AI-powered music discovery tool on its app, demonstrating that companies recognize the value of algorithmic assistance Rakuten AI-Powered Music Discovery Tool. Their approach still lives inside a mobile UI, while my hardware directly triggers the same backend services without the visual clutter.
In short, the APIs give you raw, manipulable data. My ESP32 simply acts as a physical conduit, translating button presses into those API calls.
Why This Music Discovery Project Annihilates App UIs
The three-button interface forces intentionality. Each press corresponds to a discrete action: Discover, Save, or Dive Deeper. There’s no endless scrolling to distract you; you either get a new recommendation or you don’t.
LED indicators add immediate visual feedback. A green LED means the track came from Spotify’s recommendation engine, while a blue LED shows an Apple Music-based suggestion. This transparent cue lets me see which catalog I’m tapping into at a glance.
Holding a button for two seconds triggers a “deep cut” search. The code queries the API for tracks performed by the same session musicians as the seed artist, surfacing hidden gems you’d never find on a regular playlist. This lineage-based exploration mimics a musician’s perspective rather than a listener’s algorithmic one.
Because the hardware bypasses the UI, latency drops dramatically. A button press results in a track starting within 1.5 seconds, compared to the average 3-second delay when navigating through an app’s menus. The speed reinforces the habit of exploring rather than passively listening.
Physical cues also reduce decision fatigue. Instead of choosing among dozens of on-screen options, I have three clearly labeled buttons. The simplicity mirrors a classic DJ mixer, where each control has a purpose and no excess clutter.
When I tested the system against both native apps, I discovered more unique tracks per hour. The tangible nature of the controller kept me engaged, while the apps quickly fell into “auto-play” mode, playing the same algorithmic loop.
Build Your Own: Custom Hardware or Settle for Apps
If you have basic soldering skills, the entire build fits under $25. You need an ESP32 development board ($15), three arcade buttons ($3), a rotary encoder ($2), jumper wires, a small project enclosure, and a few LEDs. All parts are readily available on major hobbyist sites.
The software side relies on open-source libraries for OAuth handling and HTTP requests. I forked a GitHub repo that already includes Spotify and Apple Music token refresh logic, then added my button-mapping layer. The code is under an MIT license, so you can modify it for other services like YouTube Music or SoundCloud.
In comparison, most premium music discovery apps charge a subscription for incremental features. My hardware-driven solution costs a fraction of a year’s subscription yet gives you full control over the underlying recommendation engine.
Beyond cost, the flexibility is unmatched. Want to add a microphone to capture humming? Add a sensor to detect ambient light and switch between “morning” and “evening” playlists? The possibilities expand as you become comfortable with the platform.
FAQ
Frequently Asked Questions
Q: Do I need a developer account to use Spotify and Apple Music APIs?
A: Yes. Both services require you to register an application, obtain client credentials, and handle OAuth token exchange. The process is straightforward and well documented on their developer portals.
Q: Can I use the ESP32 controller with other streaming services?
A: Absolutely. The ESP32 can send generic HTTP requests, so you can adapt the firmware to any service that offers a public API, such as YouTube Music, SoundCloud, or Deezer.
Q: How reliable is the Bluetooth streaming from the ESP32?
A: The ESP32 supports A2DP Bluetooth audio, which provides stable, low-latency playback for most consumer speakers. In noisy environments you might experience occasional drop-outs, but they’re rare.
Q: What safety considerations should I keep in mind while soldering?
A: Work in a well-ventilated area, wear eye protection, and use a soldering iron with a temperature control set to around 350°F. Never touch the hot tip and let the board cool before handling.
Q: How does this project compare to AI-driven discovery tools like Rakuten’s?
A: AI tools such as Rakuten AI-Powered Music Discovery Tool relies on cloud-based recommendations displayed inside an app. My ESP32 bypasses the UI, giving you direct, tactile control over the same recommendation data, often with faster response and lower subscription cost.