Je souhaite imprimer une liste de chansons (avec l'artiste, l'album, le classement et, si possible, le nombre de lectures et la durée) à partir de mon compte Google Play Music .
Il n'y a pas de moyen facile de faire cela à partir de l'application. Faire des écrans d’impression pendant que je feuillette une longue liste de chansons n’est pas tenable.
Je serais heureux avec une exportation de données vers un format standard (texte brut, CSV, XML, etc.) que je peux manipuler moi-même.
Aucune suggestion?
Réponses:
En modifiant la réponse de darkliquid , j’ai proposé ce qui suit qui permet d’ enregistrer plusieurs listes de lecture à la fois .
Instructions:
JSON.stringify(tracklistObj, null, '\t')
(changer le'\t'
en' '
si vous voulez une indentation minimale) outracklistObj
si vous voulez simplement que l'objet JavaScript le manipule à votre façon. Si vous souhaitez le trier, exécutez la commandeObject.values(tracklistObj).forEach(a => a.sort())
avant d' appeler laJSON.stringify
commande.Veillez à ne pas actualiser la page avant d'avoir terminé tout ce que vous souhaitez faire, sinon vous devrez redémarrer à partir de l'étape 1.
Vous pouvez également imprimer les noms de piste sur la console au fur et à mesure en passant
printTracksToConsole
àtrue
(vous devez le faire avant l'étape 3).Notez que vous pouvez probablement ignorer toutes les erreurs GET et POST dans la console (celles-ci sont générées par Play Music lui-même, et non par ce script).
Notez également que la configuration actuellement de seulement donner
Artist - Track name
, mais vous pouvez facilement modifier la ligne qui atracklistObj[currentPlaylist].push(artist + " - " + title);
avecalbum
,playCount
,duration
ourating
, et / ou tout autre forme que vous voulez (y compris le format CSV si vous le s'il vous plaît).Exemple de sortie (toutes les listes de lecture Google Play que j'ai actuellement) avec les paramètres par défaut. Il a fallu environ 5 minutes au total pour naviguer dans chacune des 32 listes de lecture, les faire défiler, puis convertir le résultat en texte.
PS Vous pourriez être intéressé par l’utilisation d’un site appelé « Régler ma musique» pour créer des listes de lecture YouTube (mais la création de listes de lecture est limitée à 10 par jour) afin que vos amis puissent écouter vos listes de lecture Google. Si vous faites cela, vous voudrez probablement utiliser quelque chose comme TextMechanic pour supprimer les guillemets et
.mp3
la liste en sortie.la source
(Mis à jour le 2016-05-09, plus robuste que la réponse principale actuelle)
Si vous avez juste besoin de sauvegarder quelques playlists, vous pouvez simplement utiliser mon extrait de code Javascript ci-dessous. Cet extrait de code peut enregistrer toutes les listes telles qu'elles apparaissent sur la page Web. Il fonctionne donc également pour toutes les vues de bibliothèque de chansons / albums / artistes. J'ai énuméré deux autres alternatives à la fin de cette réponse.
Accédez à la page https://play.google.com/music/listen#/all (ou à votre playlist).
Ouvrez une console de développeur (F12 pour Chrome). Collez le code ci-dessous dans la console.
Toutes les chansons grattées sont stockées dans l'
allsongs
objet et une version texte de la liste est copiée dans le Presse-papiers. Je recommande de courirsongsToText("all",true)
après pour obtenir toutes les informations CSV. Exécutercopy(outText)
manuellement si la copie du presse-papiers ne fonctionnait pas du premier coup.Code (dernière version le 10 mai 2016, rév. 30):
Le dernier code sur Github (Gist) ici: https://gist.github.com/jmiserez/c9a9a0f41e867e5ebb75
Si vous souhaitez que la sortie soit au format texte, vous pouvez appeler la fonction songsToText (). Vous pouvez sélectionner un style, choisir le format et, si seuls les morceaux appréciés / optimisés doivent être exportés. La liste résultante sera ensuite collée dans le presse-papier. Les styles sont
all
,artist
,artistalbum
,artistsong
,artistalbumsong
. CSV donnera un fichier CSV et peut être omis (faux par défaut). Likedonly peut être omis (par défaut, false) ou défini sur true, et filtrera toutes les chansons ayant une note supérieure ou égale à 5. Par exemple:songsToText("all",true,false)
exportera toutes les chansons au format csv.songsToText("all",true,true)
exportera uniquement les chansons préférées au format csv.songsToText("artistsong",false,false)
exportera toutes les chansons sous forme de texte.Vous pouvez ensuite coller les données où bon vous semble, par exemple http://www.ivyishere.org/ si vous souhaitez ajouter les chansons ou les albums à votre compte Spotify. Pour que Ivy reconnaisse les albums complets, utilisez le style "artistalbum". Pour les chansons, utilisez le style "artistes".
À propos de l'extrait: Ceci est basé sur la réponse originale de Michael Smith, mais est un peu plus robuste. J'ai apporté les améliorations suivantes:
Fonctionne sur les playlists ainsi que sur la bibliothèque. Toutes les colonnes manquantes sont ignorées et l'ordre est déterminé. Il devrait donc fonctionner sur presque toutes les listes de chansons de Google Music.
Il s'arrête lorsqu'il atteint le bas (détecte la position du défilement) ou après le délai spécifié. Le délai d'attente est là pour empêcher une boucle sans fin au cas où le code de détection de défilement serait désactivé de quelques pixels.
Il est beaucoup plus rapide (intervalle toutes les 1 ms), mais attend si les données ne sont pas prêtes (jusqu’à l’expiration du délai spécifié, actuellement de 3 secondes).
Effectue la déduplication en cours de fonctionnement et sur la sortie.
Gathers ratings: "undefined" n'est jamais noté, "0" n'est pas noté (c.-à-d. Une fois noté, puis supprimé), "1" correspond au pouce vers le bas et "5" au pouce levé.
En plus des améliorations de base, il formate également le texte et le copie dans le presse-papiers. Vous pouvez également obtenir les données au format CSV si vous le souhaitez, en exécutant la
songsToText
fonction une seconde fois.Alternatives:
Si vous avez besoin d'une API Python, consultez le projet non officiel d'API Google Music .
Si vous avez des tonnes de listes de lecture et que vous souhaitez toutes les exporter en une seule fois, essayez l' exportateur de listes de lecture gmusic-scripts qui peut le faire (Python utilise le projet d'API non officiel).
la source
songsToText("all", true)
ensuite.Si cela ne vous dérange pas d'exécuter un peu de code javascript dans la console de développement de votre navigateur, vous pouvez extraire des informations de la page de la manière suivante (testé uniquement dans Chrome):
Ceci imprimera sur la console une liste de la plupart des chansons actuellement visibles dans la fenêtre. Vous aurez besoin de faire défiler et réexécutez-le pour obtenir plus. Pour le moment, je n'ai pas encore trouvé de moyen convenable de saisir l'info dans son intégralité, mais ce rapide piratage de 5 minutes est mieux que rien.
la source
querySelector(...)
place dequerySelectorAll(...)[0]
À l'aide de la réponse principale (à l'époque) et à la recherche d'une solution complète, j'ai créé le code suivant, qui fait défiler la liste de musique vers le bas et ajoute des objets JSON à un tableau au fur et à mesure.
Faute de savoir exactement quelles chansons sont visibles, le code les ajoute toutes, puis se dédoublent à la fin. (Testé uniquement dans Chrome.)
Pour utiliser: allez dans votre bibliothèque, où vous voyez votre liste complète de chansons, et lancez
Quand cela arrive au bas de la page, lancez-le pour arrêter le défilement, dé-dupliquer le tableau et copier JSON dans le Presse-papiers.
la source
J'ai un JavaScript beaucoup plus court que vous pouvez coller dans la console. Au lieu de ré-exécuter le code, vous pouvez simplement faire défiler l'écran vers le bas et tous les albums qui apparaissent sont ajoutés. Ensuite, vous pouvez télécharger la liste de lecture sous forme de feuille de calcul.
Instructions
Allez ici: https://play.google.com/music/listen#/ap/auto-playlist-thumbs-up
Ouvrez les outils de développement (F12) et collez le code ci-dessous dans l' onglet Console .
Faites défiler pour que chaque album de la liste de lecture soit visible au moins une fois
Double-cliquez quelque part sur la page pour télécharger
export-google-play.csv
Ouvrir
export-google-play.csv
dans Excel.Code
Sortie
GitHub
la source
J'ai modifié un peu l'approche de la réponse principale. Cela fonctionnait mieux pour moi avec la méthode copier / coller d'Ivy ( http://www.ivyishere.org/ivy ):
Étape 1 Ouvrez la liste de lecture de Google Music dans Chrome que vous souhaitez et collez-la dans la console:
Cela devrait entraîner le rendu de toute votre liste de lecture plutôt que seulement une partie.
Étape 2 Collez ce script dans la console:
Étape 3 Allez à Ivy et lorsque vous arrivez à l'étape 2, sélectionnez l'onglet Copier / Coller et collez la sortie de la console à cet endroit.
MODIFIER
Script mis à jour proposé par Alex Pedersen
Itérant sur le raffinement de samurauturetskys (je n'ai pas encore assez de réputation pour commenter son post). Je pense que le style de Googleplay a été mis à jour et que le script ci-dessous donne encore une jolie sortie.
la source
Il vous suffit de faire Ctrl+ –jusqu'à ce que le texte soit très petit, puis de tout sélectionner. Cela fonctionne comme un charme sans scripts et applications.
la source
Je viens de tomber sur cette question à la recherche de quelque chose de similaire.
Je suppose que votre meilleure option est de:
la source