Pobierz całą historię zakupów iTunes jako plik CSV (MacOS High Sierra)


Odpowiedzi:


1

Poniższe prace dotyczą aktualnie używanego systemu MacOS (High Sierra 10.13.5 Beta) i najnowszego iTunes (12.7.4.76).

Napisałem skrypt AppleScript, który używa skryptów interfejsu użytkownika i kompiluje listę zakupionych utworów w iTunes. Skrypt otworzy nowy dokument TextEdit i wypełni utwory w formacie rozdzielanym przecinkami i będzie zawierał kolejny numer, nazwę utworu, wykonawcę, album i czas trwania utworu. Wynik będzie podobny do tego:

"Nr","Song Name","Artist","Album","Duration"
"1","Badinerie","Lucero Tena","Lección de castañuelas","1:03"
"2","El colibrí","Lucero Tena","Lección de castañuelas","1:07"
"3","El relicario","Lucero Tena","Lección de castañuelas","1:36"

itunes

Oto skrypt:

tell application "iTunes" to activate
tell application "TextEdit"
    activate
    make new document at the front with properties {name:"iTunes purchased.txt"}
    delay 1
    tell application "System Events" to click menu item "Make Plain Text" of menu 1 of menu bar item "Format" of menu bar 1 of application process "TextEdit"
end tell
tell application "iTunes" to activate
tell application "System Events"
    keystroke "1" using {command down}
    set w to window "iTunes" of application process "iTunes"
    click radio button "Store" of radio group 1 of w
    delay 2
    set webarea to UI element 1 of scroll area 1 of group 1 of group 1 of splitter group 1 of w
    click static text 1 of UI element 1 of group 6 of list 2 of webarea
    delay 2
    click radio button "All" of tab group 1 of group 2 of webarea
    delay 3
    click radio button "Songs" of tab group 1 of group 5 of webarea
    delay 5
    set allRows to UI elements of table 1 of webarea
    set entireContent to quote & "Nr" & quote & "," & quote & "Song Name" & quote & "," & quote & "Artist" & quote & "," & quote & "Album" & quote & "," & quote & "Duration" & quote & return
    tell application "TextEdit" to activate
    repeat with aRow in allRows
        if class of aRow is row then
            set gr to UI element 1 of group 1 of UI element 2 of aRow
            if class of gr is group then
                set songNum to value of static text 1 of group 1 of UI element 1 of aRow
                set songName to value of static text 1 of group 2 of UI element 2 of aRow
                set songArtist to value of static text 1 of group 1 of UI element 1 of UI element 3 of aRow
                set album to UI element 1 of UI element 4 of aRow
                set songAlbum to ""
                if (count of UI elements of album) is greater than 0 then
                    set songAlbum to value of static text 1 of group 1 of album
                end if
                set songDuration to ""
                set dur to UI element 5 of aRow
                if (count of UI elements of dur) is greater than 0 then
                    set songDuration to value of static text 1 of group 1 of dur
                end if
                set aLine to quote & songNum & quote & "," & quote & songName & quote & "," & quote & songArtist & quote & "," & quote & songAlbum & quote & "," & quote & songDuration & quote
                set entireContent to entireContent & aLine & return
                tell application "TextEdit" to set text of front document to entireContent
            end if
        end if
    end repeat
end tell

Proces nie jest szybki, na moim komputerze trwa około 1 sekundy na utwór, więc bądź przygotowany na chwilę oczekiwania. Ponadto, jeśli zaczniesz otrzymywać błędy „poza indeksem”, spróbuj, podczas gdy skrypt jest uruchomiony, przewijając listę utworów iTunes w tle, aby upewnić się, że cała zawartość listy jest załadowana przed uzyskaniem dostępu przez AppleScript.


Używam High Sierra OS 10.13.4 (17E202) z iTunes 12.7.4.76, a kiedy uruchamiam ten skrypt, pojawia się następujący błąd: Zdarzenia systemowe mają błąd: Nie można uzyskać elementu interfejsu użytkownika „Zakupione” z grupy 6 lista 2 elementu UI 1 obszaru przewijania 1 grupy 1 grupy 1 rozdzielacza grupa 1 okna „iTunes” procesu aplikacji „iTunes”. Po podświetleniu tego wiersza: kliknij tekst statyczny „Zakupione” elementu interfejsu użytkownika „Zakupione” z grupy 6 listy 2 witryny sieci Web Wszelkie pomysły dotyczące problemów?
Stephen

@ Stephen Czy skrypt przechodzi do sekcji Store w iTunes? Jeśli tak, jaka jest nazwa łącza do Zakupione (lokalizacja może być powodem)?
boris42

@Następnie spróbuj zaktualizowanego skryptu, w którym zastąpiłem tekst „Zakupione” dostępem przez indeks, powinien działać lepiej
boris42
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.