9 votes

Télécharger l'ensemble de l'historique des achats iTunes sous forme de fichier CSV

Je me demande si quelqu'un a trouvé un moyen de télécharger l'intégralité de son historique d'achats sur iTunes ou App Store sous forme de fichier CSV ?

Je sais qu'à partir d'iTunes, je peux aller dans Compte / Afficher le compte / Historique des achats, mais cela pose de nombreux problèmes. Il ne me permet pas de télécharger les résultats, mais les affiche uniquement dans iTunes. Il n'affiche pas tous les achats, mais plutôt un écran à la fois. Et il n'affiche même pas les achats en tant qu'éléments individuels, mais les regroupe en collections dans lesquelles il faut cliquer. C'est presque comme s'ils essayaient de rendre difficile de voir comment vous dépensez sur l'App Store ou l'iTunes Store....

Je n'ai pas conservé assidûment tous les courriels de réception concernant mes achats, et je ne peux donc pas accéder à ces informations en procédant à un traitement en masse de ces anciens courriels.

Existe-t-il donc un autre moyen d'accéder à ces informations que l'interface inadéquate d'iTunes ?

Et si le seul moyen est de passer par l'interface iTunes, existe-t-il un moyen de script l'interface utilisateur afin que je puisse écrire un programme qui itère à travers tous les résultats et les extrait ? Quelqu'un a-t-il déjà réussi à le faire ?

5voto

jjpr Points 61

Vous avez demandé : "Existe-t-il un moyen de script l'interface utilisateur ?" Oui, si vous êtes sur Mac. Vous avez également demandé si quelqu'un avait réussi à le faire. En quelque sorte. Mon histoire remonte à 2005, et la session iTunes Store ne cessait de s'interrompre, si bien que j'ai dû l'exécuter par lots, mais le script suivant fonctionne. Sachez qu'il fonctionne très lentement ; le simple fait de récupérer la classe d'un objet dans iTunes peut prendre près d'une seconde. Je serais heureux de recevoir toute suggestion d'amélioration des performances.

Cela a fonctionné sur OS X Yosemite 10.10.5 avec iTunes 12.3.2.35, et sur OS X Mavericks 10.9.5 avec iTunes 12.3.2.35, le ou autour du 28 février 2016. Toute modification apportée par Apple à l'interface du compte iTunes Store est susceptible d'interrompre ce script.

Dans iTunes, allez dans Store > View Account, connectez-vous, faites défiler jusqu'à Purchase History et cliquez sur See All, puis, lorsque l'écran affichant Batch 1 out of N est visible, exécutez le script suivant dans 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

Cela produit un texte délimité par des tabulations, et non un CSV comme l'a demandé l'OP, mais la plupart des tableurs peuvent l'importer. Les achats de cadeaux semblent perturber le formatage, il faudra donc peut-être procéder à une curation manuelle.

Je me suis appuyé sur les informations disponibles à l'adresse suivante http://n8henrie.com/2013/03/a-strategy-for-ui-scripting-in-applescript/ pour apprendre à créer des scripts d'interface graphique.

-1voto

djule5 Points 810

J'utilise principalement une machine Windoze et j'ai trouvé une méthode semi-manuelle pour accomplir la tâche comme suit :

Dans iTunes, naviguez jusqu'à Infos sur le compte (en haut à droite d'iTunes, à côté du bouton de recherche). Faites défiler vers le bas jusqu'à Historique des achats, cliquez sur "Voir tout".

  1. Utilice Chocs verts pour saisir les informations relatives à l'achat
  2. Coller du presse-papiers dans One-Note,
  3. Utilisez l'option "Image vers texte" sur l'image collée.
  4. Coller du texte dans One-Note - ou dans un autre document.
  5. Corriger et reformater si nécessaire.

Cliquez sur le bouton "Suivant" et attendez qu'iTunes vous propose la douzaine d'entrées suivantes. Répétez, répétez, répétez.

Sample One-Note screen of iTunes purchases

Conseil : il semble que l'affichage par défaut soit celui des derniers achats et que le bouton "Suivant" permette de remonter dans le temps. Notez également que les achats multiples effectués le même jour (comme les albums) sont regroupés et qu'il faut cliquer sur le minuscule symbole -> pour obtenir des détails significatifs.

-1voto

Dorsey Krofft1 Points 1

Ce script en fait fait Le travail ! mais pas comme prévu

  1. J'ai suivi les instructions, mais j'ai obtenu une erreur : quelque chose à propos de l'impossibilité de traiter les TITRES comme une chaîne ( ?). cela a pris environ 2-3 minutes.
  2. premiers soupçons :
    • Lorsque j'ai copié-collé le code dans script Editor, les lignes suivantes ont été "interprétées", à savoir \n apparaît comme un saut de ligne [littéral/visuel], de même que \t apparaître sous forme d'onglet [littéral/visuel]
      • set myOutput to myOutput & " \n "
      • if ready then set myOutput to myOutput & val & " \t "
    • des virgules séparant les "Titres inclus dans la commande" indiquant des achats multiples dans la même journée
    • J'avais tort je pense je ne sais pas.
  3. Par curiosité, je suis passé au DERNIER lot (apparemment, mon premier achat avec ce compte date de 2004, ce qui signifie 49 lots) et j'ai relancé le script.
    • résultat : le script fonctionnait plus longtemps que prévu, j'ai donc supposé une erreur et arrêté le processus après environ 10 minutes MAIS un fichier *.txt a été généré [dans mon dossier Documents]. ce fichier contenait des données pour
      • le DERNIER lot [qui apparaissait dans iTunes lorsque j'ai lancé le script] ALORS
      • le PREMIER lot [BATCH 1, indiquant mes achats les plus récents]
      • Lorsque j'ai accédé à iTunes, j'ai remarqué que BATCH 2 était affiché.
    • conclusion : la commande pour le bouton NEXT (cliquer sur le bouton "Next" de webArea) fonctionnait. IL SE PASSAIT QUELQUE CHOSE !!! ( et ma théorie sur les virgules a diminué)
  4. Pour obtenir les informations dont j'avais besoin (lots 1-13 de 49), j'ai procédé comme suit :
    • passer au DERNIER lot (ici, le 49e lot)
    • a exécuté le script.
    • J'ai surveillé iTunes et j'ai vu l'affichage du lot changer automatiquement jusqu'à ce qu'il indique BATCH 14.
    • J'ai arrêté le script et vérifié le fichier *.txt dans mon dossier Documents.
    • LO ! Le fichier *.txt montre mes achats du [dernier] BATCH 49 au BATCH 13 !
  5. Je voulais répéter l'erreur initiale pour enregistrer l'erreur exacte et voir si mes soupçons initiaux étaient fondés. NOPE ! J'ai recommencé depuis le début, et CECI :
    • le script s'est exécuté comme prévu
    • la seule erreur (jusqu'à présent, parce que j'exécute toujours le script) a été une perte de temps de connexion au BATCH 21

actuellement, le script travaille sur le BATCH 32

LE TIMING :

  • Sur la base de la date de création du fichier *.txt généré et des heures de modification (que je surveille également), il semble que chaque lot prenne environ 3 minutes pour traiter et mettre à jour ledit fichier *.txt.
  • jusqu'à présent, pour mes 49 lots (temps de connexion perdue NON inclus), cela a pris
    • LOTS 1-21 = @45 minutes
    • LOTS 21-49 (en cours : lot actuel SAUVEGARDÉ = 34) = @30 minutes

Je sais TMI ! TMI !
Mais j'espère que cela vous aidera !

EDITAR:

  1. RE : #5 ci-dessus " la seule erreur (jusqu'à présent, parce que je continue à exécuter le script) était une perte de temps de connexion au BATCH 21"
    • J'ai relancé le script, en commençant par le BATCH 21 (où la perte de connexion s'est produite).
    • Je m'attendais à ce qu'il s'arrête au BATCH 1 NOPE ! Il a continué, sans interruption, jusqu'à ce qu'il s'enroule sur lui-même et enregistre jusqu'au BATCH 20 (qui affichera le BATCH 21 dans iTunes à la fin de l'enregistrement).

CONCLUSION : le script s'exécutera de BATCH[n] à BATCH[n-1] (à condition qu'il n'y ait pas de temps morts ni d'interruptions).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X