Scarica l'intera cronologia acquisti di iTunes come file CSV

4

Mi chiedo se qualcuno abbia trovato un modo per scaricare l'intera cronologia degli acquisti di iTunes o App Store come file CSV?

So che da iTunes posso andare su Account / Visualizza account / Cronologia acquisti, ma questo ha numerosi problemi. Non mi permette di scaricare i risultati, ma li mostra solo in iTunes. Non mostra tutti gli acquisti, ma mostra i risultati uno schermo alla volta. Inoltre, non mostra gli acquisti come singoli elementi pubblicitari, ma li mostra raggruppati in raccolte in cui è necessario fare clic. È quasi come se stessero cercando di rendere difficile vedere come spendi su App Store o iTunes Store ....

Non ho salvato in modo assiduo tutte le ricevute via email relative ai miei acquisti, quindi non posso accedere a queste informazioni eseguendo l'elaborazione di massa di quelle vecchie email.

Quindi esiste un altro modo per ottenere l'accesso a queste informazioni, fatta eccezione per l'inadeguata interfaccia di iTunes?

E se l'unico modo è tramite l'interfaccia di iTunes, c'è un modo per creare uno script dell'interfaccia utente in modo da poter scrivere un programma che ha iterato attraverso tutti i risultati e li ha estratti? Qualcuno è riuscito a farlo?

    
posta algal 13.07.2015 - 03:16
fonte

3 risposte

5

Hai chiesto "c'è un modo per creare uno script dell'interfaccia utente?" Sì, se sei su un Mac. Hai anche chiesto, "Qualcuno è effettivamente riuscito a farlo?" Una specie di. La mia cronologia risale al 2005 e la sessione di iTunes Store è andata a scadere, quindi ho dovuto eseguirlo in batch, ma il seguente script funziona. Sappi che funziona molto lentamente; il semplice recupero della classe di un oggetto da iTunes può richiedere quasi un secondo. Gradirei qualsiasi miglioramento delle prestazioni che qualcuno possa suggerire.

Questo ha funzionato su OS X Yosemite 10.10.5 con iTunes 12.3.2.35 e OS X Mavericks 10.9.5 con iTunes 12.3.2.35, intorno al 28 febbraio 2016. Eventuali modifiche apportate da Apple all'interfaccia dell'account di iTunes Store probabilmente interromperà questo script.

In iTunes, vai a Store > Visualizza Account, accedi, scorri fino a Cronologia acquisti e fai clic su Visualizza tutto, quindi, quando è visibile la schermata che mostra Batch 1 su N, esegui il seguente script in Script Editor:

tell application "System Events"
    set dateString to do shell script "date \"+%Y-%m-%d_%H.%M.%S\""
    log dateString
    set target_file to ((path to documents folder) as text) & dateString & "_iTunes_Purchase_History.txt"
    set myOutput to ""

    set webArea to UI element "loading iTunes store" of splitter group 1 of window "iTunes" of application process "iTunes"
    set batchText to value of first UI element of webArea whose value starts with "Viewing Batch"
    log batchText
    set AppleScript's text item delimiters to {" "}
    set num to last text item in batchText
    log num
    set currentNum to text item 3 in batchText
    log currentNum

    repeat num times
        set els to UI elements of webArea
        set ready to false
        set open_target_file to open for access file target_file with write permission
        --repeat with el in els
        repeat with el in els
            set cl to class of el
            if cl is button then
                set myOutput to myOutput & "\n"
            end if
            if cl is static text then
                set val to value of el
                if val starts with "Copyright" then set ready to false
                if ready then set myOutput to myOutput & val & "\t"
                if val is "Total Price" then set ready to true
            end if
        end repeat
        log myOutput
        write myOutput to open_target_file starting at eof
        set myOutput to ""
        close access open_target_file

        click button "Next" of webArea
        repeat
            delay 2
            set batchText to value of first UI element of webArea whose value starts with "Viewing Batch"
            set tempNum to text item 3 in batchText
            if tempNum is not currentNum then
                set currentNum to tempNum
                log currentNum
                exit repeat
            end if
        end repeat
        delay 2
    end repeat
end tell

Questo produce testo delimitato da tabulazioni, non CSV come richiesto dall'OP, ma la maggior parte delle applicazioni di fogli di calcolo lo importeranno. Gli acquisti di regali sembrano rovinare la formattazione, quindi potrebbe essere necessaria una cura manuale.

Mi sono basato sulle informazioni link per imparare come fare scripting GUI.

    
risposta data 29.02.2016 - 16:25
fonte
0

Uso principalmente una macchina windoze e ho trovato un modo semi-manuale per eseguire l'attività come segue:

In iTunes Vai a Informazioni account (attualmente in alto a destra di iTunes accanto al pulsante di ricerca). Scorri verso il basso fino a Cronologia acquisti, fai clic su "Vedi tutti".

  1. Utilizza Greenshot per acquisire le informazioni di acquisto
  2. Incolla dagli appunti in One-Note,
  3. Utilizza l'opzione "Immagine su testo" sull'immagine incollata.
  4. Incolla il testo in One-Note o in un altro documento.
  5. Correggere e riformattare secondo necessità.

Fai clic sul pulsante "Avanti" e attendi che iTunes ti fornisca la dozzina successiva di voci. Ripeti, ripeti, ripeti.

Suggerimento:perimpostazionepredefinitalavistaèdegliultimiacquistie"Avanti" torna indietro nel tempo. Nota inoltre che più acquisti nello stesso giorno (come gli albumb) vengono raggruppati insieme e devi fare clic sul piccolo - > simbolo per vedere dettagli significativi.

    
risposta data 15.03.2016 - 23:31
fonte
0

questo script in realtà fa funziona! solo non come previsto ...

  1. ho seguito le indicazioni, ma ho ricevuto un errore: qualcosa su come non essere in grado di gestire i TITOLI come una stringa (?). questo ha richiesto circa 2-3 minuti.
  2. primi sospetti:
    • quando ho copiato il codice in Script Editor, le seguenti righe sono state "interpretate" cioè \ n si presenta come un'interruzione di riga [letterale / visiva], così come \ t viene visualizzata come una scheda [letterale / visivo]
      • imposta myOutput su myOutput & "\ N"
      • se è pronto, quindi imposta myOutput su myOutput & val & "\ T"
    • virgole che separano i "Titoli inclusi nell'ordine" che indicano più acquisti in un solo giorno
    • ho sbagliato ... penso ... non lo so.
  3. su un'allodola, ho saltato nell'ultimo batch (a quanto pare, il mio primo acquisto con questo account era nel 2004, il che significava 49 lotti) e ho eseguito di nuovo lo script
      Risultato
    • : lo script è stato eseguito più a lungo del previsto, quindi ho presupposto un errore e ho interrotto il processo dopo circa 10 minuti ... MA C'È STATO un file * .txt generato [nella mia cartella Documenti]. questo file ha mostrato i dati per
      • l'ULTIMO batch [che veniva mostrato in iTunes quando ho avviato lo script] THEN
      • il PRIMO lotto [BATCH 1, che mostra i miei acquisti più recenti]
      • quando sono andato su iTunes, ho notato che BATCH 2 è stato visualizzato
    • conclusione: funzionava il comando per il pulsante NEXT (clic sul pulsante "Avanti" di webArea). QUALCOSA È STATA ACCADUTA !!! (... e la mia teoria sulle virgole era diminuita)
  4. per ottenere le informazioni necessarie (lotti 1-13 di 49), ho fatto quanto segue:
    • è passato al LAST batch (qui, il 49 ° batch)
    • ha eseguito lo script
    • ho monitorato iTunes e ho visto la visualizzazione del batch cambiare automaticamente finché non mostrava BATCH 14
    • ho interrotto lo script e ho controllato il file * .txt nella cartella Documenti
    • LO! il file * .txt mostrava i miei acquisti da [il mio ultimo] BATCH 49 a BATCH 13!
  5. non ancora fatto! Volevo ripetere l'errore iniziale per registrare l'errore esatto e vedere se i miei sospetti iniziali avevano senso. NO! Ho iniziato dall'inizio e QUESTO:
    • lo script è stato eseguito come previsto
    • l'unico errore (finora, perché sto ancora eseguendo lo script) era un timeout della connessione persa al BATCH 21

al momento, lo script funziona su BATCH 32 ...

TIMING:

  • in base alla data di creazione del file * .txt generato e ai tempi di modifica (che sto anche monitorando), sembra che ogni batch impieghi circa 3 minuti per elaborare e aggiornare detto file * .txt.
  • finora, per i miei 49 lotti (timeout della connessione persa NON incluso) è preso ...
    • BATCHES 1-21 = @ 45 minuti
    • BATCHES 21-49 (in corso: batch SALVATO corrente = 34) = @ 30 minuti

lo so ... TMI! TMI!
ma spero che questo aiuti!


EDIT:

  1. RE: # 5 sopra ... "l'unico errore (fino ad ora, perché sto ancora eseguendo lo script) era un timeout della connessione persa al BATCH 21"
    • ho riavviato lo script, iniziando da BATCH 21 (dove si è verificato il timeout della connessione persa)
    • mi aspettavo che finisse al BATCH 1 ... NOPE! ha continuato a funzionare, ininterrottamente, fino a quando non si è arrotondato su se stesso e registrato fino a BATCH 20 (che visualizzerà BATCH 21 in iTunes al completamento)

CONCLUSIONE: lo script verrà eseguito da BATCH [n] a BATCH [n-1] (fornito da NO timeout / interruzioni)

    
risposta data 28.03.2017 - 05:13
fonte

Leggi altre domande sui tag