Saya ingin mencetak daftar lagu (dengan artis, album, peringkat dan, jika mungkin, jumlah pemutaran dan durasi) dari akun Google Play Music saya .
Tidak ada cara mudah untuk melakukan ini dari aplikasi. Melakukan print-screen saat saya halaman melalui daftar panjang lagu tidak dapat dipertahankan.
Saya akan senang dengan ekspor data ke format standar (teks biasa, CSV, XML, dll.) Yang dapat saya manipulasi sendiri.
Ada saran?
Jawaban:
Memodifikasi jawaban darkliquid , saya datang dengan yang berikut yang memungkinkan untuk beberapa playlist disimpan sekaligus .
Instruksi:
JSON.stringify(tracklistObj, null, '\t')
(ubah'\t'
ke' '
jika Anda ingin lekukan minimal) atautracklistObj
jika Anda hanya ingin objek JavaScript memanipulasi dengan cara Anda sendiri. Jika Anda ingin diurutkan, jalankan perintahObject.values(tracklistObj).forEach(a => a.sort())
sebelum memanggilJSON.stringify
perintah.Berhati-hatilah untuk tidak me-refresh halaman sebelum Anda menyelesaikan semua yang ingin Anda lakukan atau Anda harus me-restart dari langkah 1.
Anda juga dapat mencetak nama trek ke konsol sambil beralih
printTracksToConsole
ketrue
(Anda harus melakukan ini sebelum Langkah 3).Perhatikan bahwa Anda mungkin dapat mengabaikan semua kesalahan GET dan POST di konsol (ini dihasilkan oleh Play Music sendiri, bukan skrip ini).
Juga mencatat bahwa saat ini pengaturan itu hanya untuk memberikan
Artist - Track name
, tetapi Anda dapat dengan mudah mengedit garis yang memilikitracklistObj[currentPlaylist].push(artist + " - " + title);
denganalbum
,playCount
,duration
, ataurating
, dan / atau apa pun format yang Anda inginkan (termasuk format CSV jika Anda jadi silakan).Contoh output (semua daftar putar Google Play yang saya miliki saat ini) dengan pengaturan default. Total sekitar 5 menit untuk menavigasi ke masing-masing 32 daftar putar, gulir ke bawah, dan kemudian hasil konversi ke teks.
PS Anda mungkin tertarik menggunakan situs yang saya temukan bernama Tune My Music untuk membuat daftar putar YouTube (tetapi YouTube membatasi pembuatan daftar putar menjadi 10 hari) dari output sehingga teman Anda dapat mendengarkan Google Playlist Anda. Jika Anda melakukan ini, Anda mungkin ingin menggunakan sesuatu seperti TextMechanic untuk menghapus tanda kutip dan
.mp3
dari daftar yang dihasilkan.sumber
(Diperbarui 2016-05-09, lebih kuat dari jawaban teratas saat ini)
Jika Anda hanya perlu menyimpan beberapa daftar putar, Anda dapat menggunakan cuplikan Javascript di bawah ini. Cuplikan ini dapat menyimpan setiap daftar seperti yang ditunjukkan pada halaman web, sehingga juga berfungsi untuk semua lagu / album / tampilan pustaka artis. Saya telah mendaftarkan dua alternatif lain di akhir jawaban ini.
Buka: https://play.google.com/music/listen#/all (atau daftar putar Anda)
Buka konsol pengembang (F12 untuk Chrome). Tempel kode di bawah ini ke konsol.
Semua lagu yang tergores disimpan di
allsongs
objek dan versi teks dari daftar disalin ke clipboard. Saya sarankan menjalankansongsToText("all",true)
setelah itu untuk mendapatkan informasi CSV lengkap. Jalankancopy(outText)
secara manual jika penyalinan clipboard tidak berfungsi pada percobaan pertama.Kode (versi terbaru 10 Mei 2016, Rev 30):
Kode terbaru tentang Github (Gist) di sini: https://gist.github.com/jmiserez/c9a9a0f41e867e5ebb75
Jika Anda ingin output dalam format teks, dapat memanggil fungsi songsToText (). Anda dapat memilih gaya, memilih format, dan jika hanya lagu yang disukai / diacungi jempol yang akan diekspor. Daftar yang dihasilkan kemudian akan ditempelkan ke clipboard. Gaya yang
all
,artist
,artistalbum
,artistsong
,artistalbumsong
. CSV akan menghasilkan file CSV dan dapat ditinggalkan (default ke false). Likedonly dapat ditinggalkan (default ke false) atau disetel ke true, dan akan memfilter semua lagu dengan peringkat lebih besar atau sama dengan 5. Misalnya:songsToText("all",true,false)
akan mengekspor semua lagu dalam format csv.songsToText("all",true,true)
hanya akan mengekspor lagu yang disukai dalam format csv.songsToText("artistsong",false,false)
akan mengekspor semua lagu sebagai teks.Anda kemudian dapat menempelkan data di mana saja Anda suka, misalnya http://www.ivyishere.org/ jika Anda ingin menambahkan lagu atau album ke akun Spotify Anda. Untuk membuat Ivy mengenali album lengkap, gunakan gaya "artistalbum". Untuk lagu, gunakan gaya "seniman".
Tentang cuplikan: Ini didasarkan pada jawaban asli Michael Smith, tetapi sedikit lebih kuat. Saya telah melakukan peningkatan berikut:
Bekerja pada daftar putar maupun perpustakaan. Setiap kolom yang hilang diabaikan dan urutannya sudah ditentukan, jadi itu akan berfungsi pada hampir semua daftar lagu di dalam Google Music.
Ia berhenti ketika mencapai bagian bawah (mendeteksi posisi gulir), atau setelah batas waktu yang ditentukan. Batas waktu ada untuk mencegah loop tanpa henti seandainya kode deteksi gulir dimatikan beberapa piksel.
Ini jauh lebih cepat (interval setiap 1 ms), tetapi menunggu jika data tidak siap (hingga batas waktu yang ditentukan, saat ini 3 detik).
Apakah deduplikasi selama operasi dan pada output.
Mengumpulkan peringkat: "tidak terdefinisi" tidak pernah diberi peringkat, "0" tidak diberi peringkat (yaitu sekali dinilai tetapi kemudian dihapus), "1" adalah jempol ke bawah, dan "5" adalah jempol ke atas (disukai).
Selain perbaikan dasar, itu juga memformat teks dengan baik dan menyalinnya ke clipboard. Anda juga bisa mendapatkan data sebagai CSV jika diinginkan, dengan menjalankan
songsToText
fungsi ini untuk kedua kalinya.Alternatif:
Jika Anda memerlukan API Python, periksa proyek Google Music API tidak resmi .
Jika Anda memiliki banyak daftar putar dan ingin mengekspor semuanya dalam sekali jalan, coba eksportir daftar putar gmusic-scripts yang dapat melakukannya (Python, menggunakan proyek API tidak resmi).
sumber
songsToText("all", true)
sesudahnya.Jika Anda tidak keberatan menjalankan sedikit kode javascript di konsol pengembang browser Anda, Anda dapat mengekstrak informasi dari halaman seperti itu (hanya diuji di Chrome):
Ini akan mencetak ke konsol daftar sebagian besar lagu yang saat ini terlihat di jendela. Anda harus menggulir ke bawah dan menjalankannya kembali untuk mendapatkan lebih banyak. Saat ini saya belum menemukan cara yang layak untuk mengambil info secara keseluruhan, tetapi peretasan 5 menit cepat ini lebih baik daripada tidak sama sekali.
sumber
querySelector(...)
bukanquerySelectorAll(...)[0]
Menggunakan jawaban teratas (pada saat itu) dan menginginkan solusi lengkap, saya telah membuat kode berikut yang menggulung daftar musik dan menambahkan objek JSON ke array saat berjalan.
Karena tidak tahu persis lagu apa yang terlihat, kode menambahkan semuanya, lalu menduplikat di akhir. (Hanya diuji di Chrome.)
Untuk menggunakan: pergi ke perpustakaan Anda, di mana Anda melihat daftar lagu lengkap Anda, dan jalankan
Ketika itu sampai ke bagian bawah halaman, jalankan ini untuk menghentikan scrolling, de-duplikat array, dan salin JSON ke clipboard.
sumber
Saya memiliki beberapa JavaScript yang lebih pendek yang dapat Anda tempel ke konsol. Alih-alih menjalankan kembali kode Anda bisa menggulir ke bawah dan semua album yang muncul ditambahkan. Kemudian Anda dapat mengunduh daftar putar sebagai spreadsheet.
Instruksi
Buka di sini: https://play.google.com/music/listen#/ap/auto-playlist-thumbs-up
Buka Alat Pengembang (F12) dan rekatkan kode di bawah ini ke tab Konsol
Gulir ke sekeliling sehingga setiap album dalam daftar putar terlihat setidaknya satu kali
Klik dua kali di suatu tempat pada halaman untuk mengunduh
export-google-play.csv
Buka
export-google-play.csv
di Excel.Kode
Keluaran
GitHub
sumber
Saya memodifikasi pendekatan jawaban atas sedikit. Ini bekerja lebih baik untuk saya dengan metode salin / tempel Ivy ( http://www.ivyishere.org/ivy ):
Langkah 1 Buka daftar putar yang Anda inginkan dari Google Music di Chrome dan rekatkan ini ke konsol:
Ini akan menyebabkan seluruh daftar putar Anda menampilkan bukan hanya sebagian.
Langkah 2 Tempel skrip ini ke konsol:
Langkah 3 Pergi ke Ivy dan ketika Anda sampai ke langkah 2 di sana, pilih tab Salin / Tempel dan tempel output konsol di sana.
EDIT
Skrip yang diperbarui disarankan oleh Alex Pedersen
Iterasi pada penyempurnaan samurauturetskys (saya belum memiliki reputasi yang cukup untuk mengomentari jabatannya). Saya pikir styling Googleplay telah diperbarui sehingga script di bawah ini kembali memberikan output yang cantik.
sumber
Cukup Ctrl+ –sampai teksnya sangat kecil dan kemudian pilih semuanya. Ini berfungsi seperti pesona tanpa skrip dan aplikasi.
sumber
Saya baru saja menemukan pertanyaan ini mencari sesuatu yang serupa.
Saya kira, pilihan terbaik Anda adalah:
sumber