posted an update —

Evolving Local Music Curation: Reflections on My First Iteration and What's Next

When I started for the kulture, my goal was to run a small pilot study to measure how commercial recommendation algorithms flatten distinct South African music subgenres—like Motswako, Gqom, Lekompo, Bacardi, and Maskandi—into generic umbrella categories like "World Music" or "Afrobeats."

To fix this, my first iteration tested custom approaches to correct the categorization. Looking back, this first version was essentially an offline lab experiment: it successfully proved that I could un-flatten these playlists using local scripts. However, I quickly realized that running a static script has major real-world bottlenecks:

  • It can't adapt to changing tastes: A one-time script can't track an evolving music library. Over time, commercial algorithms would just pull the user's recommendations back toward mainstream hits.
  • It breaks if the internet drops: My manual scripts didn't save their progress. If the network dropped, the process failed completely and had to start over from scratch.

What I'm Building Next: A Smart Background Agent

These limitations have completely reshaped how I am approaching the next phase of this research. To make this actually work for people in the real world, I am moving away from heavy, app-blocking local scripts and building a smart, cloud-based background agent.

Here is what I am working on next:

1. Seamless Cloud Processing Instead of making the user wait while their library is processed, the new system (built on FastAPI and Cloud Run) will instantly accept a request and handle all the heavy lifting silently in the background.

2. Network-Aware Data Saving Crucially, I am designing this architecture to respect local data costs. Before downloading or processing a heavy library, the system will check the user's connection. If they are on metered mobile data, it will automatically pause to save them money. It will log its exact progress in the cloud, so when the user reconnects to Wi-Fi, it picks up right where it left off without wasting a single megabyte or repeating work.

3. Continuous Curation with Gemini Behind the scenes, I plan to integrate Gemini to continuously and accurately classify music into authentic subgenres. This background agent will constantly fine-tune the user's recommendations, actively pushing back against the mainstream algorithm so that local artists stay front and center as the user's tastes evolve.

Ultimately, this transition from a static script to a stateful agent is about building something that doesn't just work in theory, but actually respects the user's context, data, and culture.

Log in or sign up for Devpost to join the conversation.