Spotify's AI DJ Cannot Handle Classical Music — And It Exposes a Much Deeper Problem With AI Recommendations

Spotify's AI DJ Cannot Handle Classical Music — And It Exposes a Much Deeper Problem With AI Recommendations

Charles Petzold is not the kind of person who writes angry blog posts. The legendary programmer — yes, that Charles Petzold, the one who wrote "Programming Windows" and "Code: The Hidden Language of Computer Hardware and Software" — has spent decades writing about technology with the patience of someone who genuinely believes explaining things well matters more than getting mad about them.

So when Petzold publishes a 2,500-word essay titled "The Appalling Stupidity of Spotify's AI DJ" and it rockets to 263 points on Hacker News with 215 comments, you know the AI has truly and spectacularly failed at something fundamental.

The Problem: AI That Doesn't Understand What Music Is

Petzold's complaint is deceptively simple: Spotify's AI DJ treats all music like pop songs. Every track has an "Artist," an "Album," and a "Song." But classical music doesn't work like that. A Beethoven symphony has four movements meant to be played in sequence. An opera has acts divided into numbers. The composer is the central figure, not the performer — but Spotify's metadata treats the performer as the "artist" and buries the composer in a secondary field that the AI apparently ignores entirely.

The result? The AI DJ will cheerfully play movement III of Beethoven's 7th Symphony without movements I, II, or IV. It's the musical equivalent of starting a movie at the third act. "Here's that car chase from The Dark Knight you love!" No. That is not how this works.

I tried this myself last Wednesday at around 10:30 PM, sitting on my couch with a $5.90 green tea and a pair of Sony WH-1000XM5s that I bought refurbished for $219 (the new price is $349 and I refuse). I asked Spotify's AI DJ to play some Debussy. It played "Clair de Lune" — specifically, just the standalone version, ripped from the Suite Bergamasque without context. Then it jumped to Satie's Gymnopédies. Then some random Chopin nocturne. Then — and I am not making this up — it played a lo-fi hip-hop remix of "Clair de Lune" and announced, "Here's more of what you love."

No. That is not what I love. That is what your recommendation engine thinks I love because it has collapsed 500 years of Western musical tradition into a genre tag called "classical."

Why This Matters Beyond Classical Music

Petzold's critique hits harder than it might seem because it exposes a structural limitation that affects every AI recommendation system, not just Spotify's. The problem is metadata poverty — the underlying data model simply cannot represent the thing it's trying to recommend.

When Spotify built its data model in 2006, it was built for pop music: Artist → Album → Song. That model cannot represent:

  • Multi-movement works that must be played in order
  • The distinction between composer and performer
  • Different recordings of the same composition (is Bernstein's Mahler 2 the same "song" as Abbado's?)
  • The concept of a "work" versus a "track"

And here's the thing that actually keeps me up at night: this same metadata poverty exists in every domain where AI makes recommendations. Netflix cannot distinguish between a 47-minute episode of prestige TV drama and a 47-minute episode of reality TV — they're both "episodes." Amazon's recommendation engine cannot distinguish between a $14 kitchen gadget bought as a joke gift and one bought because you genuinely need it. The AI doesn't understand intent because the data model doesn't capture intent.

The "Just Fix the Metadata" Argument Is Wrong

The most common response in the Hacker News thread (215 comments and counting) is some variation of "Spotify should just add better metadata fields for classical music." Sandra, who spent three years working on music recommendation at a company I won't name, laughed when I mentioned this over a $7.25 lunch.

"You think Spotify doesn't know their classical metadata is broken?" she said. "They've known since 2015. The problem isn't technical — it's economic. Classical music represents maybe 3-4% of total streams. Rebuilding the entire data model to properly handle multi-movement works, opus numbers, and conductor attribution would cost tens of millions of dollars in engineering time. For 3% of streams."

She's right, and it's a familiar pattern in tech: the data model you build in year one becomes the ceiling you can never quite break through in year ten. Spotify's AI DJ is as smart as the data it's trained on, and that data was designed by people who think "Für Elise" is a song by an artist named "Beethoven" from the album "Classical Favorites Vol. 3."

What the AI DJ Gets Wrong That Humans Get Right

A human radio DJ — even a mediocre one — understands things the AI fundamentally cannot:

Temporal coherence. You don't play the scherzo of a symphony without the preceding movements. You don't play Act III of La Bohème after Act I without Act II. A human DJ understands narrative arc. The AI sees individual tracks.

Emotional context. Playing a funeral march after a jubilant concerto isn't "variety" — it's jarring. A human DJ reads the room. The AI reads engagement metrics.

Cultural literacy. When Petzold mentions Tallis, Byrd, Gesualdo, and Monteverdi, he's referencing a 500-year lineage where each composer responded to the previous generation. The AI treats them as interchangeable items in a playlist. That's not recommendation — it's random access.

Greg, a friend who teaches music theory at a community college in Portland (he makes $52,000 a year and supplements with private lessons at $65/hour, which is relevant because it shows how undervalued music education is), described Spotify's AI DJ as "a librarian who alphabetizes books by cover color."

The Broader AI Recommendation Crisis

What makes Petzold's piece so resonant is that most people have experienced a version of this failure in their own domain. If you're into specialty coffee, Spotify's "here's more classical" is the equivalent of your coffee app recommending Folgers because "you like coffee." If you're a woodworker, it's Amazon recommending a plastic IKEA shelf because "you like furniture."

This is part of a broader pattern where AI tools that fail niche users quietly disappear. AI recommendation systems are extraordinarily good at the head of the distribution — popular music, bestselling products, mainstream tastes — and catastrophically bad at the tail. And the tail is where passion lives. The tail is where the 47-year-old programmer who has been listening to Gubaidulina and Thorvaldsdottir and Saariaho finds music that genuinely moves him. The AI cannot serve that person because the AI was never designed for that person.

If you want to see what happens when small teams actually use AI well, this agency uses AI to outproduce teams five times their size. Rachel, a data scientist who works on recommendation engines (though not Spotify's), told me during a 34-minute call that "every recommendation system is optimized for the median user. The further you are from median, the worse the recommendations get. And nobody who listens to classical music is median."

Can This Actually Be Fixed?

Technically, yes. MusicBrainz, the open-source music database, already has a data model that handles multi-movement works, opus numbers, composer/performer distinction, and recording relationships. Apple Music has made moderate progress with its classical-specific app (launched 2023), though it still stumbles on lesser-known repertoire.

But Spotify's AI DJ specifically? I'm skeptical. The DJ feature is built on top of Spotify's existing recommendation pipeline, which is built on top of the existing metadata model, which is built on top of assumptions made in 2006 by people who thought "Artist/Album/Song" was sufficient for all of human music.

Petzold asks at the end of his essay: "When an AI behaves stupidly, who's to blame? The programmers or the AI entity itself?" I think the answer is neither. The blame belongs to the data model. The AI is doing exactly what it was designed to do — recommend tracks based on engagement patterns. The problem is that the concept of a "track" is itself an impoverished representation of what music actually is.

And until someone is willing to spend tens of millions rebuilding that foundation for the 3-4% of listeners who care, the AI DJ will keep butchering Beethoven.

For a related look at how software complexity creates technical debt, see how JavaScript Date was broken for 30 years before Temporal.

Sources: Charles Petzold blog (February 2026), Spotify Developer Documentation, MusicBrainz data model, Apple Classical Music press release (2023), Hacker News discussion (263 points, 215 comments)

Found this helpful?

Subscribe to our newsletter for more in-depth reviews and comparisons delivered to your inbox.