Spotify YouTube Music

Pasá tu playlist al otro servicio. Sin canciones equivocadas.

Una herramienta de línea de comandos gratuita y open source que mueve playlists en los dos sentidos entre Spotify y YouTube Music: canciones, portada y Me gusta. Cuando no sabe qué versión es la correcta, pregunta en vez de adivinar.

$ git clone https://github.com/DecoudJuan/Migratify

Licencia MIT · Python 3.10+ · Windows, macOS y Linux · sin cuenta, sin servidor, sin API key

  • aceptada sola
    88 o más, sin diferencia de versión y sin un segundo candidato pegado.
  • a revisión
    Entre 70 y 88, o casi empate. Cinco candidatos, y elegís vos.
  • no encontrada
    Menos de 70. Queda listada por nombre, nunca sustituida.

01 El problema de la canción equivocada

Mover una playlist es fácil. Moverla bien no.

El mismo título existe como cover, como karaoke, como versión en vivo, como remix, como edit acelerado — y como una canción distinta de un artista distinto.

La mayoría agarra el primer resultado y te entrega una playlist que está silenciosamente 15% mal. Migratify puntúa cada candidato, y uno con el artista equivocado queda por debajo del piso de revisión — así que nunca puede llegar a ofrecerse.

buscando en youtube music
Wicked Game — Chris Isaak
Heart Shaped World · 4:46
Wicked Game — Chris Isaak
canción · canal oficial del artista · la duración coincide (4:46)
96
Wicked Game — Chris Isaak
versión en vivo · versión distinta (−25) · duración distinta
71
Wicked Game — HIM
artista distinto (vetado) — tope, no puede sugerirse
40
Wicked Game — Karaoke Version
artista distinto (vetado) · karaoke (−25)
31
Aceptada sola: el primer candidato pasa los 88 sin penalización de versión y sin nadie pegado atrás. Los otros tres nunca llegan a tu playlist.

02 Cómo funciona

Tres comandos. Solo uno escribe.

Decidir está separado de hacer. Corré la migración entera, leé el reporte, cambiá de opinión — ninguna de las dos cuentas se enteró.

01

migratify plan

Lee la playlist de origen, puntúa cada candidato en el destino y escribe un reporte. Una corrida interrumpida sigue donde quedó.

solo lectura
02

migratify review

Solo las canciones que el puntaje no pudo resolver. Cinco candidatos cada una, con duración, puntaje y el motivo de cada número.

solo local
03

migratify apply

Crea la playlist y agrega lo aceptado — nombrando la cuenta de destino antes de preguntar. Corrélo dos veces y nada se duplica.

el único que escribe
migratify apply — la confirmación escribe
migratify > apply
About to write
Late night driving
Spotify → YouTube Music
account: juan@gmail.com
94 tracks will be added
2 unresolved matches will be left out
Continue? [Y/n]: y

Created https://music.youtube.com/playlist?list=PLxK…
in juan@gmail.com
Added 94 tracks
Cover not uploaded — YouTube Music has no API for
playlist artwork. The original is at
~/.migratify/covers/a3f1c9b2e5d4.jpg if you want to set it by hand.

Done.
  url:     https://music.youtube.com/playlist?list=PLxK…
  account: juan@gmail.com on YouTube Music

03 Qué se lleva

Una playlist es más que una lista de canciones.

Los dos sentidos, un motor

Spotify → YouTube Music y de vuelta. La dirección sale de la URL que pegás.

Me gusta

Tu biblioteca guardada migra como cualquier playlist — y llega como una. Nunca se escribe dentro de una biblioteca.

Nombre, descripción y portada

Viaja la playlist, no solo su contenido. La portada se sube donde el destino lo permite.

Sync en vez de migrar de nuevo

migratify sync busca solo lo que nunca llegó, en la playlist que ya existe.

Solo iniciás sesión

Sin app de desarrollador, sin client ID, sin API key. Funciona con una cuenta gratuita de Spotify.

Reportes auditables

Markdown, CSV o JSON por corrida: qué coincidió, con qué puntaje, qué faltó.

Retomable y con caché

Las coincidencias se guardan localmente por dirección, así volver a correr no cuesta búsquedas nuevas.

Corre sin Python

Builds independientes para Windows y macOS. Doble clic y se abre el prompt.

Sin servidor, sin cuenta

Corre en tu máquina y habla solo con los dos servicios. Todo queda en ~/.migratify.

04 El motor de coincidencias

Cinco señales para puntuar, dos para vetar.

Cada candidato que vuelve se puntúa de 0 a 100. El artista y la duración se llevan el peso, porque son lo que un cover no puede falsear.

Veto de artista — un parecido menor a 0.5 deja al candidato con un tope de 40, debajo del piso de revisión, no importa lo perfecto que se vea el título.

Penalización de versión — 25 puntos por cada etiqueta distinta: en vivo, remix, acústico, instrumental, karaoke, radio edit, acelerado.

Atajo por ISRC — un ISRC exacto puntúa 100 al instante. Identidad de grabación, no parecido.

  • artista0.40
  • título0.30
  • duración0.20
  • álbum0.05
  • tipo0.05

La duración es el mejor detector de covers que existe. Una regrabación casi nunca cae dentro de los cinco segundos del original. Cuando un servicio no informa la duración, puntúa un 0.5 neutro: la ausencia no es evidencia.

0 — 69 no encontrada Queda listada. No se sustituye por nada.
70 — 87 a revisión Cinco candidatos, con motivos.
88 — 100 aceptada Limpia y clara.

La regla del casi empate importa tanto como los umbrales: si los dos primeros quedan a menos de cuatro puntos, la canción va a revisión incluso con puntaje alto. Quedarse con el número más alto sería tirar una moneda disfrazada de decisión. Todos los umbrales se pueden configurar.

05 Comandos

Todos los comandos, y cuál escribe.

Comando Qué hace ¿Escribe?
migratify Abre el prompt interactivo — el banner de arriba. Los comandos se escriben sin el prefijo. no
migratify login Conecta los dos servicios iniciando sesión. Importa una sesión del navegador cuando puede y abre una ventana de login cuando no. no
migratify auth status Qué está conectado y qué navegadores encontró en esta máquina. no
migratify playlists spotify Lista tus playlists de un servicio, con la cantidad de canciones. Incluye tus Me gusta. no
migratify plan <url> Compara la playlist entera y escribe un reporte. Se puede correr todas las veces que quieras. no
migratify review Resuelve las coincidencias dudosas. Tus decisiones quedan guardadas localmente. no
migratify apply Crea la playlist de destino y agrega lo aceptado. Pregunta primero, y nombra la cuenta.
migratify migrate <url> plan → review → apply, guiado, en un solo comando.
migratify migrate liked --to ytmusic Migra tu biblioteca guardada. También --to spotify para el otro sentido.
migratify sync <url> Agrega solo las canciones que nunca llegaron al destino, dentro de la playlist que creó la primera corrida.
migratify runs Las corridas anteriores con su ID, para revisar o reportar una vieja. no
migratify report --format csv Vuelve a generar el reporte de cualquier corrida en Markdown, CSV o JSON. no

06 Descargar

Dos maneras de empezar.

Build independiente

Sin Python. Descomprimir y listo. ~70 MB.

  • Doble clic al ejecutable abre el prompt interactivo.
  • Incluye la automatización del navegador — iniciar sesión es esa automatización. No trae un navegador: usa el que ya tenés.
  • Todas las releases y checksums →

Desde el código

Python 3.10 o más nuevo, en cualquier sistema.

$ git clone https://github.com/DecoudJuan/Migratify
$ cd Migratify && pip install -e ".[login]"
$ migratify login
  • El extra login es la automatización del navegador, lo que te deja conectar iniciando sesión.
  • Después, migratify auth status para confirmar que funcionó.
macOS — las sesiones se importan directo; Safari necesita Acceso total al disco para tu terminal Windows — Chrome y Edge cifran sus cookies desde la v127, así que Migratify abre su propia ventana de login Linux — depende del keyring, en general funciona Por SSHmigratify auth ytmusic --paste

07 Preguntas

Lo que la gente pregunta de verdad.

¿Cómo paso una playlist de Spotify a YouTube Music?

Instalá Migratify, ejecutá migratify login una vez para iniciar sesión en los dos servicios y después migratify migrate con la URL de la playlist. Migratify detecta la dirección a partir del link, busca cada canción en YouTube Music, te pregunta por las que no puede decidir y solo entonces crea la playlist.

¿También migra de YouTube Music a Spotify?

Sí. Es el mismo motor en los dos sentidos y la dirección se toma de la URL que pegás: un link de Spotify migra hacia YouTube Music y un link de YouTube Music migra hacia Spotify. El matching no cambia en nada.

¿Puedo migrar mis canciones que me gustan?

Sí, en cualquier dirección: migratify migrate liked --to ytmusic, o --to spotify. Tu biblioteca guardada llega como una playlist normal del otro lado. Migratify nunca escribe dentro de una biblioteca guardada: una playlist que no querías se borra con un clic, y varios cientos de canciones agregadas a tu biblioteca no.

¿Necesito una app de desarrollador, un client ID o una API key?

No. Iniciás sesión como lo hacés siempre, en una ventana del navegador, y Migratify guarda esa sesión localmente. No hay nada que registrar ni nada que pegar.

¿Funciona con una cuenta gratuita de Spotify?

Sí, y por eso iniciar sesión es el camino por defecto. Desde 2025 Spotify exige una suscripción Premium para que una app recién registrada pueda usar la Web API, así que el flujo clásico de registrar una app no está disponible en una cuenta gratuita. Iniciar sesión no pasa por esa puerta.

¿Puede agregar la versión equivocada de una canción?

Ese es exactamente el error que Migratify existe para evitar. Cada candidato se puntúa por artista, título, duración, álbum y tipo de resultado. Un candidato con el artista equivocado queda vetado por debajo del piso de revisión, así que ni siquiera puede ofrecerse. Cada etiqueta de versión distinta (en vivo, remix, acústico, karaoke, acelerado) cuesta 25 puntos. Una canción se acepta sola solo con 88 o más, sin diferencia de versión y sin un segundo candidato pegado; cualquier cosa menos clara te espera en la cola de revisión.

¿Migra la portada de la playlist?

El nombre y la descripción viajan en los dos sentidos, y la portada se sube cuando el destino es Spotify. YouTube Music no tiene ninguna API para la portada de una playlist, así que en ese sentido Migratify descarga la imagen original a tu máquina y te dice dónde quedó, por si querés subirla a mano.

¿Y si después agrego más canciones a la playlist?

Ejecutá migratify sync con la misma URL. Busca solo las canciones que nunca llegaron al destino y las agrega a la playlist que creó la primera migración, en vez de crear una segunda. El vínculo se recuerda por servicio de destino.

¿Es gratis? ¿A dónde van mis datos?

Migratify es gratis y tiene licencia MIT. Corre entero en tu máquina y habla solamente con Spotify y con YouTube Music. Las sesiones, el caché de coincidencias y los reportes viven en la carpeta .migratify de tu carpeta personal. No hay servidor de Migratify ni cuenta que crear.

¿Hay una versión web o una extensión en vez de una CLI?

No, a propósito. Una versión alojada necesitaría tus credenciales de Spotify y de YouTube en el servidor de otra persona, y el matcher depende de librerías que no tienen lugar en un content script. Una herramienta local de línea de comandos es la forma honesta de resolver esto, y también es la razón por la que nada de lo que migrás pasa por un tercero.

Tu playlist, en el otro servicio. Canción por canción.

Corré plan todas las veces que quieras: nunca toca una cuenta. No se crea nada hasta que decís apply.

$ migratify migrate https://open.spotify.com/playlist/…