Quiero imprimir una lista de canciones (con artista, álbum, calificación y, si es posible, número de reproducciones y duración) desde mi cuenta de Google Play Music .
No hay una manera fácil de hacer esto desde la aplicación. Hacer pantallas de impresión mientras hojeo una larga lista de canciones no es sostenible.
Me encantaría exportar datos a un formato estándar (texto plano, CSV, XML, etc.) que pueda manipular yo mismo.
¿Alguna sugerencia?
export
google-play-music
cerveza inglesa
fuente
fuente
Respuestas:
Modificando la respuesta de darkliquid , se me ocurrió lo siguiente que permite guardar varias listas de reproducción a la vez .
Instrucciones:
JSON.stringify(tracklistObj, null, '\t')
(cambiar'\t'
a' '
si desea una sangría mínima) otracklistObj
si solo desea que el objeto JavaScript lo manipule a su manera. Si desea ordenarlo, ejecute el comandoObject.values(tracklistObj).forEach(a => a.sort())
antes de llamarloJSON.stringify
.Tenga cuidado de no actualizar la página antes de haber completado todo lo que desea hacer o de lo contrario tendrá que reiniciar desde el paso 1.
También puede imprimir los nombres de las pistas en la consola a medida que avanza cambiando
printTracksToConsole
atrue
(debe hacerlo antes del Paso 3).Tenga en cuenta que probablemente pueda ignorar todos los errores GET y POST en la consola (estos son generados por Play Music en sí, no por este script).
También tenga en cuenta que en la actualidad es de configuración única para dar
Artist - Track name
, pero se puede editar fácilmente la línea que tienetracklistObj[currentPlaylist].push(artist + " - " + title);
conalbum
,playCount
,duration
, orating
, y / o cualquier formato que desee (incluyendo el formato CSV si así lo deseas).Ejemplo de salida (todas las listas de reproducción de Google Play que tengo actualmente) con la configuración predeterminada. Le llevó aproximadamente 5 minutos en total navegar a cada una de las 32 listas de reproducción, desplazarse hacia abajo y luego convertir el resultado en texto.
PD: Puede que le interese usar un sitio que encontré llamado Tune My Music para crear listas de reproducción de YouTube (pero YouTube restringe la creación de listas de reproducción a 10 por día) desde la salida para que sus amigos puedan escuchar sus listas de reproducción de Google. Si hace esto, probablemente quiera usar algo como TextMechanic para eliminar las comillas y
.mp3
de la lista de salida.fuente
(Actualizado 2016-05-09, más robusto que la respuesta principal actual)
Si solo necesita guardar algunas listas de reproducción, puede usar mi fragmento de Javascript a continuación. Este fragmento puede guardar cada lista tal como se muestra en la página web, por lo que también funciona para todas las vistas de la biblioteca de canciones / álbumes / artistas. He enumerado otras dos alternativas al final de esta respuesta.
Vaya a: https://play.google.com/music/listen#/all (o su lista de reproducción)
Abra una consola de desarrollador (F12 para Chrome). Pegue el código a continuación en la consola.
Todas las canciones raspadas se almacenan en el
allsongs
objeto y una versión de texto de la lista se copia en el portapapeles. Recomiendo corrersongsToText("all",true)
después para obtener la información CSV completa. Ejecútelocopy(outText)
manualmente si la copia del portapapeles no funcionó en el primer intento.Código (última versión 10 de mayo de 2016, Rev 30):
Último código en Github (Gist) aquí: https://gist.github.com/jmiserez/c9a9a0f41e867e5ebb75
Si desea la salida en formato de texto, puede llamar a la función songsToText (). Puede seleccionar un estilo, elegir el formato y, si solo se deben exportar las canciones con me gusta / pulgar hacia arriba. La lista resultante se pegará en el portapapeles. Los estilos son
all
,artist
,artistalbum
,artistsong
,artistalbumsong
. CSV generará un archivo CSV y puede omitirse (el valor predeterminado es falso). Likedonly puede omitirse (por defecto es falso) o establecerse en verdadero, y filtrará todas las canciones con calificaciones mayores o iguales a 5. Por ejemplo:songsToText("all",true,false)
exportará todas las canciones en formato csv.songsToText("all",true,true)
exportará solo las canciones que le gustaron en formato csv.songsToText("artistsong",false,false)
exportará todas las canciones como texto.Luego puede pegar los datos en cualquier lugar que desee, por ejemplo http://www.ivyishere.org/ si desea agregar las canciones o álbumes a su cuenta de Spotify. Para que Ivy reconozca álbumes completos, use el estilo "artistalbum". Para las canciones, use el estilo "artistas".
Acerca del fragmento: se basa en la respuesta original de Michael Smith, pero es un poco más robusto. He realizado las siguientes mejoras:
Funciona en listas de reproducción y en la biblioteca. Se ignoran las columnas que faltan y se determina el orden, por lo que debería funcionar en casi cualquier lista de canciones dentro de Google Music.
Se detiene cuando llega al final (detecta la posición de desplazamiento) o después del tiempo de espera especificado. El tiempo de espera está ahí para evitar un bucle sin fin en caso de que el código de detección de desplazamiento esté desactivado por unos pocos píxeles.
Es mucho más rápido (intervalo cada 1 ms), pero espera si los datos no están listos (hasta el tiempo de espera especificado, actualmente 3 segundos).
Hace deduplicación durante la operación y en la salida.
Reúne las calificaciones: "indefinido" nunca se califica, "0" no se califica (es decir, una vez calificado pero luego eliminado), "1" se rechaza y "5" se aprueba (me gusta).
Además de las mejoras básicas, también formatea bien el texto y lo copia al portapapeles. También puede obtener los datos como CSV si lo desea, ejecutando la
songsToText
función por segunda vez.Alternativas:
Si necesita una API de Python, consulte el proyecto no oficial de la API de Google Music .
Si tiene toneladas de listas de reproducción y desea exportarlas todas de una vez, pruebe el exportador de listas de reproducción gmusic-scripts que puede hacerlo (Python, utiliza el proyecto API no oficial).
fuente
songsToText("all", true)
después.Si no le importa ejecutar un poco de código javascript en la consola de desarrollador de su navegador, puede extraer información de la página de la siguiente manera (solo probado en Chrome):
Esto imprimirá en la consola una lista de la mayoría de las canciones actualmente visibles en la ventana. Tendrá que desplazarse hacia abajo y volver a ejecutarlo para obtener más. Por el momento aún no he descubierto una forma decente de obtener la información en su totalidad, pero este rápido truco de 5 minutos es mejor que nada.
fuente
querySelector(...)
querySelectorAll(...)[0]
Utilizando la respuesta principal (en ese momento) y queriendo una solución completa, he creado el siguiente código que se desplaza hacia abajo en la lista de música y agrega objetos JSON a una matriz a medida que avanza.
Debido a que no se sabe exactamente qué canciones son visibles, el código las agrega todas y luego las deduplica al final. (Solo probado en Chrome).
Para usar: vaya a su biblioteca, donde verá su lista de canciones completa, y ejecute
Cuando llegue al final de la página, ejecútelo para detener el desplazamiento, desduplicar la matriz y copie JSON en el portapapeles.
fuente
Tengo un JavaScript mucho más corto que puedes pegar en la consola. En lugar de volver a ejecutar el código, puede desplazarse hacia abajo y agregar todos los álbumes que aparecen. Luego puede descargar la lista de reproducción como una hoja de cálculo.
Instrucciones
Vaya aquí: https://play.google.com/music/listen#/ap/auto-playlist-thumbs-up
Abra las Herramientas para desarrolladores (F12) y pegue el siguiente código en la pestaña Consola
Desplácese para ver cada álbum de la lista de reproducción visible al menos una vez
Haga doble clic en algún lugar de la página para descargar
export-google-play.csv
Abrir
export-google-play.csv
en Excel.Código
Salida
GitHub
fuente
Modifiqué un poco el enfoque de la respuesta superior. Esto funcionó mejor para mí con el método de copiar / pegar de Ivy ( http://www.ivyishere.org/ivy ):
Paso 1 Abra la lista de reproducción que desea de Google Music en Chrome y péguela en la consola:
Esto debería hacer que toda tu lista de reproducción se procese en lugar de solo una parte.
Paso 2 Pegue este script en la consola:
Paso 3 Vaya a Ivy y cuando llegue al paso 2 allí, seleccione la pestaña Copiar / Pegar y pegue la salida de la consola allí.
EDITAR
Guión actualizado sugerido por Alex Pedersen
Iterando el refinamiento de samurauturetskys (todavía no tengo la reputación suficiente para comentar sobre su publicación). Creo que el estilo de Googleplay se ha actualizado, por lo que la secuencia de comandos a continuación nuevamente da un resultado bastante bueno.
fuente
Simplemente haz Ctrl+ –hasta que el texto sea muy pequeño y luego selecciónalo todo. Funciona de maravilla sin scripts y aplicaciones.
fuente
Acabo de encontrar esta pregunta en busca de algo similar.
Supongo que tu mejor opción es:
fuente