Quero imprimir uma lista de músicas (com artista, álbum, classificação e, se possível, número de execuções e duração) da minha conta do Google Play Music .
Não há uma maneira fácil de fazer isso no aplicativo. Não é possível fazer telas de impressão enquanto folheio uma longa lista de músicas.
Eu ficaria feliz com a exportação de dados para um formato padrão (texto sem formatação, CSV, XML etc.) que eu possa me manipular.
Alguma sugestão?
export
google-play-music
cerveja
fonte
fonte
Respostas:
Modificando a resposta do darkliquid, criei o seguinte, que permite que várias playlists sejam salvas de uma só vez .
Instruções:
JSON.stringify(tracklistObj, null, '\t')
(altere'\t'
para' '
se desejar um recuo mínimo) outracklistObj
se desejar que o objeto JavaScript o manipule à sua maneira. Se você deseja classificá-lo, execute o comandoObject.values(tracklistObj).forEach(a => a.sort())
antes de chamá-loJSON.stringify
.Cuidado para não atualizar a página antes de concluir tudo o que você deseja fazer, caso contrário você precisará reiniciar a partir da etapa 1.
Você também pode imprimir os nomes das faixas no console conforme muda
printTracksToConsole
paratrue
(você deve fazer isso antes da Etapa 3).Observe que você provavelmente pode ignorar todos os erros GET e POST no console (eles são gerados pelo próprio Play Music, não por este script).
Observe também que, atualmente, de configuração apenas para dar
Artist - Track name
, mas você pode facilmente editar a linha que temtracklistObj[currentPlaylist].push(artist + " - " + title);
comalbum
,playCount
,duration
ourating
, e / ou qualquer formatação desejada (incluindo o formato CSV se você por favor).Exemplo de saída (todas as listas de reprodução do Google Play que tenho atualmente) com as configurações padrão. Foram necessários cerca de 5 minutos no total para navegar para cada uma das 32 listas de reprodução, role para baixo e depois converter o resultado em texto.
PS Você pode estar interessado em usar um site que encontrei chamado Tune My Music para criar listas de reprodução do YouTube (mas o YouTube restringe a criação de listas de reprodução para 10 por dia) a partir da saída para que seus amigos possam ouvir suas listas de reprodução do Google. Se você fizer isso, provavelmente desejará usar algo como TextMechanic para remover as aspas e
.mp3
a lista gerada.fonte
(Atualizado em 2016-05-09, mais robusto do que a principal resposta atual)
Se você só precisa salvar algumas listas de reprodução, basta usar meu snippet Javascript abaixo. Esse snippet pode salvar todas as listas conforme mostrado na página da web, e também funciona para todas as visualizações de biblioteca de músicas / álbuns / artistas. Eu listei duas outras alternativas no final desta resposta.
Acesse: https://play.google.com/music/listen#/all (ou sua playlist)
Abra um console do desenvolvedor (F12 para Chrome). Cole o código abaixo no console.
Todas as músicas
allsongs
copiadas são armazenadas no objeto e uma versão em texto da lista é copiada para a área de transferência. Eu recomendo executarsongsToText("all",true)
depois para obter as informações completas sobre CSV. Executecopy(outText)
manualmente se a cópia da área de transferência não funcionou na primeira tentativa.Código (versão mais recente em 10 de maio de 2016, Rev. 30):
Código mais recente no Github (Gist) aqui: https://gist.github.com/jmiserez/c9a9a0f41e867e5ebb75
Se você deseja obter a saída em formato de texto, pode chamar a função songsToText (). Você pode selecionar um estilo, escolher o formato e se apenas as músicas curtidas / curtidas devem ser exportadas. A lista resultante será colada na área de transferência. Os estilos são
all
,artist
,artistalbum
,artistsong
,artistalbumsong
. O CSV resultará em um arquivo CSV e pode ser deixado de fora (o padrão é falso). O Likedonly pode ser deixado de fora (o padrão é false) ou definido como true, e filtrará todas as músicas com classificações maiores ou iguais a 5. Por exemplo:songsToText("all",true,false)
exportará todas as músicas no formato csv.songsToText("all",true,true)
exportará apenas músicas curtidas no formato csv.songsToText("artistsong",false,false)
exportará todas as músicas como texto.Você pode colar os dados em qualquer lugar que desejar, por exemplo, http://www.ivyishere.org/, se desejar adicionar as músicas ou álbuns à sua conta do Spotify. Para fazer Ivy reconhecer álbuns completos, use o estilo "album de artista". Para músicas, use o estilo "artistsong".
Sobre o trecho: é baseado na resposta original de Michael Smith, mas é um pouco mais robusto. Fiz as seguintes melhorias:
Funciona em listas de reprodução e na biblioteca. Todas as colunas ausentes são ignoradas e a ordem é calculada, por isso deve funcionar em quase todas as listas de músicas do Google Music.
Ele para quando atinge o fundo (detecta a posição de rolagem) ou após o tempo limite especificado. O tempo limite está aí para evitar um loop sem fim, caso o código de detecção de rolagem esteja desativado em alguns pixels.
É muito mais rápido (intervalo a cada 1 ms), mas aguarda se os dados não estiverem prontos (até o tempo limite especificado, atualmente 3s).
Deduplicação durante a operação e na saída.
Reúne classificações: "indefinido" nunca é classificado, "0" não é classificado (ou seja, uma vez classificado, mas removido), "1" apresenta o polegar para baixo e "5" é o polegar para cima (curtido).
Além das melhorias básicas, ele também formata bem o texto e o copia para a área de transferência. Você também pode obter os dados como CSV, se desejar, executando a
songsToText
função uma segunda vez.Alternativas:
Se você precisar de uma API Python, confira o projeto não oficial da API do Google Music .
Se você possui várias listas de reprodução e deseja exportar todas de uma só vez, experimente o exportador de listas de músicas gmusic-scripts que pode fazer isso (Python, usa o projeto não oficial da API).
fonte
songsToText("all", true)
depois.Se você não se importa de executar um pouco de código javascript no console do desenvolvedor de navegadores, pode extrair informações da página assim (testadas apenas no Chrome):
Isso imprimirá no console uma lista da maioria das músicas atualmente visíveis na janela. Você precisará rolar para baixo e executá-lo novamente para obter mais. No momento, eu ainda não descobri uma maneira decente de pegar as informações em sua totalidade, mas esse truque rápido de 5 minutos é melhor do que nada.
fonte
querySelector(...)
vez dequerySelectorAll(...)[0]
Usando a resposta principal (na época) e desejando uma solução completa, criei o código a seguir, que rola a lista de músicas e adiciona objetos JSON a uma matriz conforme ela segue.
Devido a não saber exatamente quais músicas são visíveis, o código adiciona todas elas e, em seguida, elimina a duplicação no final. (Apenas testado no Chrome.)
Para usar: vá para sua biblioteca, onde você vê sua lista completa de músicas, e execute
Quando chegar ao final da página, execute-o para interromper a rolagem, desduplicar a matriz e copiar o JSON para a área de transferência.
fonte
Eu tenho um JavaScript muito mais curto que você pode colar no console. Em vez de executar novamente o código, você pode simplesmente rolar para baixo e todos os álbuns que são exibidos são adicionados. Em seguida, você pode baixar a lista de reprodução como uma planilha.
Instruções
Acesse aqui: https://play.google.com/music/listen#/ap/auto-playlist-thumbs-up
Abra as Ferramentas do desenvolvedor (F12) e cole o código abaixo na guia Console
Role para que cada álbum da lista de reprodução fique visível pelo menos uma vez
Clique duas vezes em algum lugar da página para fazer o download
export-google-play.csv
Abra
export-google-play.csv
no Excel.Código
Saída
GitHub
fonte
Modifiquei um pouco a abordagem da resposta principal. Isso funcionou melhor para mim com o método copy / paste de Ivy ( http://www.ivyishere.org/ivy ):
Etapa 1 Abra a lista de reprodução desejada do Google Music no Chrome e cole-a no console:
Isso deve fazer com que toda a sua lista de reprodução seja renderizada, em vez de apenas uma parte.
Etapa 2 Cole este script no console:
Etapa 3 Vá para Ivy e, quando chegar à etapa 2, selecione a guia Copiar / Colar e cole a saída do console.
EDITAR
Script atualizado sugerido por Alex Pedersen
Iterando o refinamento de samurauturetskys (ainda não tenho reputação o suficiente para comentar sobre seu post). Eu acho que o estilo do Googleplay foi atualizado, então o script abaixo novamente fornece uma saída bonita.
fonte
Simplesmente faça Ctrl+ –até que o texto seja muito pequeno e selecione tudo. Funciona como um encanto sem scripts e aplicativos.
fonte
Acabei de me deparar com essa pergunta procurando algo semelhante.
Eu acho que sua melhor opção é:
fonte