Proyecto · App personal para mi música · 2026
Samsung Music DL
Busco una canción desde el celular y me llega un MP3 que Samsung Music muestra bien desde el primer momento: con portada, letra, artista y álbum.

Ficha
- Mi parte
- Todo. La hice en un día, con un agente de IA en Antigravity; en octubre la revisé, corregí y publiqué.
- Con quién
- Proyecto personal
- Cuándo
- 2026
- Hoy
- Funciona en local · no se puede alojar en la nube
Para uso personal. Descarga audio de YouTube; el repositorio pide respetar los derechos de autor y los términos de cada servicio.
El problema
Samsung Music enseña lo que trae el archivo. Un MP3 sin portada ni letra se ve con un ícono gris, y arreglar canción por canción con un editor de etiquetas era eterno.
En el celular
Cómo funciona
- 01
Buscar
La búsqueda va a iTunes: título, artista, álbum, año y la portada en 600 × 600.
- 02
La letra
LRCLIB, y si no está, Lyrics.ovh. Se limpian las marcas de tiempo.
- 03
El audio
El servidor encuentra el video y transmite el audio con yt-dlp; no guarda nada.
- 04
En el teléfono
El navegador lo convierte a MP3, recorta la portada y escribe las etiquetas ID3 que lee Samsung Music.
Por qué así
Convertir en el navegador
El servidor solo pasa bytes. Decodificar, codificar y etiquetar lo hace el dispositivo, así no hace falta ffmpeg en ningún lado.
MP3 de verdad
Samsung Music y Windows ignoran las etiquetas ID3 escritas sobre AAC; por eso se transcodifica.
yt-dlp y no una librería
Probé ytdl-core y otras: se rompían con la detección de bots. yt-dlp es lo único que aguanta.
Dos descargas a la vez
Un álbum de veinte canciones no puede tumbar el CPU del celular.
Con qué
Lenguajes
- JavaScript
Toda la app, cliente y rutas del servidor.
Frameworks
- Next.js
- React
- Tailwind CSS
La interfaz, las rutas de API y la PWA instalable.
Plataforma web
- Web Audio API
- Canvas
- Service Worker
Convertir a MP3 y recortar la portada en el propio celular, sin servidor de audio.
Herramientas
- yt-dlp
- YouTube Music
- Spotify
De dónde sale el audio y cómo se leen álbumes y listas.
IA
- Antigravity
El entorno con el que la construí en un día.
La prueba
- de buscar a tener el MP3 etiquetado
- 13–17 s
- MP3 con portada 600 × 600 y letra
- 320 kbps
- lo que tardé en la primera versión
- 1 día
- commits de la revisión, cada arreglo por separado
- 12
Lo que no salió
No se puede subir a Vercel ni a ningún hosting: necesita el binario de yt-dlp y YouTube bloquea las IP de los servidores. Vive en mi computadora y la uso desde el celular por la red de la casa.
- Depende de servicios que cambian: este año se rompieron las listas de YouTube y la API de Spotify empezó a pedir Premium.
- El audio de YouTube viene a unos 128 kbps: el MP3 de 320 no le agrega calidad.
- En la revisión apareció un agujero real: el proxy de portadas aceptaba dominios que solo terminaban parecido. Ya está cerrado.
Qué me llevé
- Con IA se construye rápido; lo que no se ahorra es probar contra los servicios de verdad.
- Una app que depende de terceros necesita fallar con un mensaje claro, no en silencio.
- Hacer algo para mí mismo fue la forma más rápida de saber si servía.