Me cansé del algoritmo de Spotify y me construí uno que descubre de verdad
Spotify me recomendaba siempre lo mismo. El problema no es el algoritmo: es su objetivo. Así que me monté crate-digger, un descubridor musical que rota ejes de exploración y tira de curación humana. Open source.
Llevaba meses con la misma sensación: abría Spotify, miraba las recomendaciones y era todo variaciones de lo que ya escuchaba. Más reggaeton, más de lo mismo, un bucle cómodo del que no salía nunca.
Y un día caí en la cuenta de que el problema no es que el algoritmo sea malo. Es que su objetivo no es el mío. El recomendador optimiza que sigas escuchando — retención, tiempo de sesión, anuncios. Y la forma más segura de que le des al play es darte algo que ya sabes que te gusta. Descubrir, por definición, es incómodo: te saca de la zona conocida. Ningún sistema que optimice engagement te va a empujar ahí.
Así que dejé de pelearme con él y me construí lo contrario.
Tres ideas, cero machine learning
Lo primero que decidí: esto no iba a ser un modelo entrenado. No hace falta. La gracia está en tres piezas muy simples.
1. Un eje de exploración que rota cada día. Esta es la clave anti-sesgo. En vez de un recomendador que converge a tu carril, cada día de la semana fuerza una dirección distinta de búsqueda:
| Día | Eje |
|---|---|
| Lunes | Un artista poco conocido a un par de saltos de tu gusto |
| Martes | Un género que probablemente no escuchas |
| Miércoles | Otro país o escena (rota el mundo) |
| Jueves | Otra época o década |
| Viernes | Un lanzamiento independiente o reciente |
| Sábado | Una joya de catálogo de algo que ya te gusta |
| Domingo | Comodín: la elección de un curador humano |
Al rotar el eje, el sistema no puede colapsar en un solo estilo. La variedad no es una esperanza, es estructural.
2. Curación humana, no algoritmos de plataforma. Las fuentes son editoriales: Bandcamp Daily, KEXP, NPR Music, Gilles Peterson… gente que recomienda por gusto, no por métricas. Ahí está el "sin sesgo" de verdad: nadie está optimizando que le des al play.
3. Memoria. Un fichero apunta todo lo que ya te ha recomendado, así que nunca repite y cada vez explora más lejos.
El resultado es una canción del día, con por qué te encaja y enlaces de YouTube y Bandcamp. Sin depender de Spotify para nada.
Honestidad sobre lo que es
Lo digo claro porque es lo que hace creíble un proyecto así: esto es un patrón de prompt + rotación + memoria, no un algoritmo novedoso. Y precisamente por eso me gusta. Es transparente, lo entiende cualquiera, funciona con cualquier LLM (Claude, DeepSeek, un Ollama local en tu máquina) y lo puedes tocar tú. No hay caja negra.
La primera que me escupió, un lunes, fue LEENALCHI — pansori coreano montado sobre bajo funk, sacado de una guía de Bandcamp Daily, recomendado en su día por Brian Eno. A dos saltos de mi hip-hop habitual y a años luz de lo que Spotify me habría puesto jamás. Justo eso era lo que buscaba.
Lo he abierto
Está en GitHub con licencia MIT: github.com/r3tr0eth/crate-digger. Cero dependencias, solo Python. Lo siguiente que quiero añadir es ListenBrainz —datos abiertos de escucha, sin Spotify— para que la semilla salga de lo que realmente oigo.
El objetivo de fondo es más grande: dejar de depender de la suscripción. Descubrir por un lado, tener mi propia biblioteca por otro. Pero eso es otro post.