Chcę wydrukować listę utworów (z wykonawcą, albumem, oceną oraz, jeśli to możliwe, liczbą odtworzeń i czasem trwania) z mojego konta Muzyki Google Play .
Nie ma łatwego sposobu na zrobienie tego z poziomu aplikacji. Robienie ekranów podczas przeglądania długiej listy utworów jest nie do zniesienia.
Byłbym zadowolony z eksportu danych do standardowego formatu (zwykły tekst, CSV, XML itp.), Którym sam mogę manipulować.
Jakieś sugestie?
Odpowiedzi:
Modyfikując odpowiedź darkliquid za , ja przyszedłem z następujących składników, które pozwala na wielokrotne listy mają być zapisane na raz .
Instrukcje:
JSON.stringify(tracklistObj, null, '\t')
(zmienić'\t'
się' '
, jeśli chcesz minimalne wcięcie) lubtracklistObj
jeśli chcesz po prostu obiektem JavaScript, żeby manipulować swoją własną drogę. Jeśli chcesz to posortować, uruchom polecenieObject.values(tracklistObj).forEach(a => a.sort())
przed wywołaniemJSON.stringify
polecenia.Uważaj, aby nie odświeżyć strony przed ukończeniem wszystkiego, co chcesz zrobić, w przeciwnym razie będziesz musiał ponownie uruchomić od kroku 1.
Możesz także wydrukować nazwy ścieżek na konsoli, przechodząc
printTracksToConsole
dotrue
(powinieneś to zrobić przed krokiem 3).Pamiętaj, że prawdopodobnie możesz zignorować wszystkie błędy GET i POST w konsoli (są one generowane przez samą Muzykę Play, a nie przez ten skrypt).
Należy również pamiętać, że obecnie jest to konfiguracja tylko dać
Artist - Track name
, ale łatwo można edytować linię, która matracklistObj[currentPlaylist].push(artist + " - " + title);
zalbum
,playCount
,duration
, lubrating
i / lub cokolwiek formatowanie chcesz (w tym formacie CSV, jeśli tak proszę).Przykładowe dane wyjściowe (wszystkie listy odtwarzania Google Play, które obecnie posiadam) z ustawieniami domyślnymi. Przejście do każdej z 32 list odtwarzania, przewinięcie w dół, a następnie przekonwertowanie wyniku na tekst zajęło w sumie około 5 minut.
PS Możesz zainteresować się witryną o nazwie Tune My Music, aby tworzyć listy odtwarzania YouTube (ale YouTube ogranicza tworzenie list odtwarzania do 10 dziennie) z wyników, aby Twoi znajomi mogli słuchać Twoich list odtwarzania Google. Jeśli to zrobisz, prawdopodobnie chcesz użyć czegoś takiego jak TextMechanic, aby usunąć cudzysłowy i
.mp3
z listy wyników.źródło
(Zaktualizowano 2016-05-09, bardziej solidny niż aktualna najlepsza odpowiedź)
Jeśli chcesz tylko zapisać kilka list odtwarzania, możesz po prostu użyć poniższego fragmentu kodu JavaScript. Ten fragment kodu może zapisać każdą listę, tak jak jest pokazana na stronie internetowej, więc działa również dla wszystkich widoków bibliotek utworów / albumów / artystów. Na końcu tej odpowiedzi wymieniłem dwie inne alternatywy.
Wejdź na: https://play.google.com/music/listen#/all (lub swoją listę odtwarzania)
Otwórz konsolę programisty (F12 dla Chrome). Wklej kod poniżej do konsoli.
Wszystkie zeskrobane utwory są przechowywane w
allsongs
obiekcie, a tekstowa wersja listy jest kopiowana do schowka. Polecam uruchomićsongsToText("all",true)
później, aby uzyskać pełne informacje o CSV. Uruchomcopy(outText)
ręcznie, jeśli kopiowanie ze schowka nie działało przy pierwszej próbie.Kod (najnowsza wersja 10 maja 2016, Rev 30):
Najnowszy kod na Github (Gist) tutaj: https://gist.github.com/jmiserez/c9a9a0f41e867e5ebb75
Jeśli chcesz otrzymać wynik w formacie tekstowym, możesz wywołać funkcję songsToText (). Możesz wybrać styl, wybrać format, a jeśli tylko polubione / polecone utwory powinny zostać wyeksportowane. Wynikowa lista zostanie następnie wklejona do schowka. Style
all
,artist
,artistalbum
,artistsong
,artistalbumsong
. Plik CSV spowoduje utworzenie pliku CSV i można go pominąć (domyślnie false). Likedonly może zostać pominięty (domyślnie false) lub ustawiony na true, i będzie filtrował wszystkie utwory z ocenami większymi lub równymi 5. Np .:songsToText("all",true,false)
wyeksportuje wszystkie utwory w formacie csv.songsToText("all",true,true)
wyeksportuje tylko lubiane utwory w formacie csv.songsToText("artistsong",false,false)
wyeksportuje wszystkie utwory jako tekst.Następnie możesz wkleić dane w dowolnym miejscu, na przykład http://www.ivyishere.org/, jeśli chcesz dodać utwory lub albumy do konta Spotify. Aby Ivy rozpoznała pełne albumy, użyj stylu „artistalbum”. W przypadku piosenek użyj stylu „wykonawcy”.
Informacje o fragmencie: jest on oparty na oryginalnej odpowiedzi Michaela Smitha, ale jest nieco bardziej niezawodny. Wprowadziłem następujące ulepszenia:
Działa na listach odtwarzania, a także w bibliotece. Brakujące kolumny są ignorowane, a kolejność ustalona, więc powinna działać na prawie każdej liście utworów w Google Music.
Zatrzymuje się, gdy osiągnie dno (wykryje pozycję przewijania) lub po upływie określonego czasu. Przekroczono limit czasu, aby zapobiec niekończącej się pętli w przypadku, gdy kod wykrywania przewijania jest wyłączony o kilka pikseli.
Jest znacznie szybszy (interwał co 1ms), ale czeka, jeśli dane nie będą gotowe (do określonego limitu czasu, obecnie 3s).
Wykonuje deduplikację podczas działania i na wyjściu.
Zbiera oceny: „niezdefiniowany” nigdy nie jest oceniany, „0” nie jest oceniany (tzn. Raz oceniany, ale następnie usuwany), „1” oznacza kciuk w dół, a „5” jest kciuk w górę (lubiany).
Oprócz podstawowych ulepszeń ładnie formatuje tekst i kopiuje go do schowka. Możesz także pobrać dane jako CSV, jeśli chcesz, uruchamiając
songsToText
funkcję po raz drugi.Alternatywy:
Jeśli potrzebujesz interfejsu API języka Python, sprawdź nieoficjalny projekt interfejsu Google Music API .
Jeśli masz mnóstwo list odtwarzania i chcesz wyeksportować je wszystkie za jednym razem, wypróbuj eksportera list odtwarzania gmusic-scripts, który może to zrobić (Python, używa nieoficjalnego projektu API).
źródło
songsToText("all", true)
później.Jeśli nie masz nic przeciwko uruchomieniu odrobiny kodu javascript w konsoli programisty przeglądarki, możesz wyodrębnić informacje ze strony w ten sposób (testowane tylko w Chrome):
Spowoduje to wydrukowanie na konsoli listy większości aktualnie widocznych utworów w oknie. Musisz przewinąć w dół i uruchomić go ponownie, aby uzyskać więcej. W tej chwili nie wymyśliłem jeszcze przyzwoitego sposobu na zdobycie informacji w całości, ale ten szybki 5-minutowy hack jest lepszy niż nic.
źródło
querySelector(...)
zamiastquerySelectorAll(...)[0]
Korzystając z najwyższej odpowiedzi (w tym czasie) i szukając kompletnego rozwiązania, stworzyłem następujący kod, który przewija listę muzyki i dodaje obiekty JSON do tablicy w miarę jej działania.
Ze względu na to, że nie wiem dokładnie, jakie utwory są widoczne, kod dodaje je wszystkie, a następnie na końcu usuwa duplikaty. (Testowane tylko w Chrome).
Aby użyć: przejdź do swojej biblioteki, gdzie znajduje się pełna lista utworów i uruchom
Gdy dojdzie do dolnej części strony, uruchom to, aby zatrzymać przewijanie, usuń duplikat tablicy i skopiuj JSON do schowka.
źródło
Mam trochę krótszy JavaScript, który możesz wkleić do konsoli. Zamiast ponownie uruchamiać kod, możesz po prostu przewinąć w dół i dodać wszystkie wyświetlane albumy. Następnie możesz pobrać listę odtwarzania jako arkusz kalkulacyjny.
Instrukcje
Idź tutaj: https://play.google.com/music/listen#/ap/auto-playlist-thumbs-up
Otwórz Narzędzia programistyczne (F12) i wklej poniższy kod na karcie Konsola
Przewiń, aby każdy album na liście odtwarzania był widoczny przynajmniej raz
Kliknij dwukrotnie gdzieś na stronie, aby pobrać
export-google-play.csv
Otwórz
export-google-play.csv
w programie Excel.Kod
Wydajność
GitHub
źródło
Trochę zmodyfikowałem podejście do najlepszej odpowiedzi. Działa to dla mnie lepiej z metodą kopiowania / wklejania Ivy ( http://www.ivyishere.org/ivy ):
Krok 1 Otwórz żądaną listę odtwarzania z Google Music w Chrome i wklej ją do konsoli:
Powinno to spowodować wyświetlenie całej listy odtwarzania, a nie tylko jej fragmentu.
Krok 2 Wklej ten skrypt do konsoli:
Krok 3 Przejdź do Ivy, a kiedy przejdziesz do kroku 2, wybierz kartę Kopiuj / Wklej i wklej tam dane wyjściowe konsoli.
EDYTOWAĆ
Zaktualizowany skrypt sugerowany przez Alexa Pedersena
Iteracja na temat udoskonalenia samurauturetskys (nie mam jeszcze wystarczającej reputacji, aby skomentować jego post). Wydaje mi się, że styl Googleplay został zaktualizowany, więc poniższy skrypt ponownie daje całkiem niezły wynik.
źródło
Po prostu rób Ctrl+, –aż tekst będzie bardzo mały, a następnie zaznacz wszystko. Działa jak urok bez skryptów i aplikacji.
źródło
Właśnie natrafiłem na to pytanie, szukając czegoś podobnego.
Chyba najlepszą opcją jest:
źródło