Descargar el historial completo de compras de iTunes como archivo CSV

4

Me pregunto si alguien ha encontrado una forma de descargar el historial de compras de iTunes o App Store completo como un archivo CSV.

Sé que desde iTunes puedo ir a Cuenta / Ver Cuenta / Historial de compras, pero esto tiene numerosos problemas. No me permite descargar los resultados, solo los muestra en iTunes. No muestra todas las compras, pero en cambio muestra los resultados una pantalla a la vez. Y ni siquiera muestra las compras como elementos de línea individuales, sino que los muestra agrupados en colecciones en las que debe hacer clic. Es casi como si estuvieran tratando de hacerte difícil ver cómo gastas en la App Store o en la iTunes Store ...

No he estado guardando asiduamente todos los recibos de correo electrónico relacionados con mis compras, por lo que no puedo acceder a esta información realizando un procesamiento masivo de esos correos antiguos.

Entonces, ¿hay alguna otra forma de obtener acceso a esta información, excepto por la inadecuada interfaz de iTunes?

Y si la única forma es a través de la interfaz de iTunes, ¿hay alguna forma de escribir la interfaz de usuario para que yo pueda escribir un programa que itere todos los resultados y los extraiga? ¿Alguien realmente ha logrado hacer esto?

    
pregunta algal 13.07.2015 - 03:16

3 respuestas

5

Usted preguntó: "¿hay alguna forma de escribir la interfaz de usuario?" Sí, si estás en una Mac. También preguntas: "¿Alguien ha tenido éxito en hacer esto?" Una especie de Mi historial se remonta a 2005, y la sesión de la tienda iTunes Store se agotó, así que tuve que ejecutarlo por lotes, pero la siguiente secuencia de comandos funciona. Tenga en cuenta que se ejecuta muy lentamente; simplemente recuperar la clase de un objeto de iTunes puede tardar casi un segundo. Agradecería cualquier mejora de rendimiento que cualquiera pueda sugerir.

Esto funcionó en OS X Yosemite 10.10.5 con iTunes 12.3.2.35, y en OS X Mavericks 10.9.5 con iTunes 12.3.2.35, alrededor del 28 de febrero de 2016. Cualquier cambio que Apple realice en la interfaz de cuenta de la tienda iTunes Store probablemente romperá este script.

En iTunes, vaya a Tienda > Vea la cuenta, inicie sesión, desplácese hasta Historial de compras y haga clic en Ver todo, luego, cuando la pantalla que muestra el Lote 1 fuera de N está visible, ejecute el siguiente script en el Editor de secuencias de comandos:

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

Esto produce texto delimitado por tabulaciones, no CSV como el OP solicitado, pero la mayoría de las aplicaciones de hoja de cálculo lo importarán. Las compras de regalos parecen estropear el formato, por lo que puede necesitar cierta curación manual.

Confié en la información en enlace para aprender cómo hacer scripts GUI.

    
respondido por el jjpr 29.02.2016 - 16:25
0

Utilizo principalmente una máquina de windoze y encontré una forma semi-manual para realizar la tarea de la siguiente manera:

En iTunes, vaya a Información de la cuenta (actualmente, en la parte superior derecha de iTunes, junto al botón de búsqueda). Desplácese hacia abajo hasta Historial de compras, haga clic en "Ver todo".

  1. Utilice Greenshot para capturar la información de compra
  2. Pegar desde el portapapeles en One-Note,
  3. Use la opción "Imagen a texto" en la imagen pegada.
  4. Pegue texto en una nota, u otro documento.
  5. Corregir y reformatear según sea necesario.

Haga clic en el botón "Siguiente" y espere a que iTunes le dé la siguiente docena de entradas. Repita, repita, repita.

Sugerencia:Pareceque,pordefecto,lavistaesdelasúltimascomprasy"Siguiente" retrocede en el tiempo. También tenga en cuenta que las compras múltiples en el mismo día (como los albumbs) se agrupan y tiene que hacer clic en el botón pequeño - > Símbolo para ver detalles significativos.

    
respondido por el Steven the Easily Amused 15.03.2016 - 23:31
0

esta secuencia de comandos en realidad funciona ! pero no como se esperaba ...

  1. seguí las instrucciones, pero recibí un error: algo acerca de no poder manejar los TÍTULOS como una cadena (?). Esto tomó aproximadamente 2-3 minutos.
  2. primeras sospechas:
    • cuando copié y pegué el código en el Editor de secuencias de comandos, las siguientes líneas se "interpretaron", es decir, \ n se mostró como un salto de línea [literal / visual], como se mostró \ t como una pestaña [literal / visual]
      • establezca myOutput en myOutput & "\ n"
      • si está listo, establezca myOutput en myOutput & val & "\ t"
    • comas que separan los "títulos incluidos en orden" que indican compras múltiples en un solo día
    • Estaba equivocado ... creo ... no lo sé.
  3. en una alondra, salté al último lote (al parecer, mi primera compra con esta cuenta fue en 2004, lo que significó 49 lotes) y ejecuté el script nuevamente
    • resultado: la secuencia de comandos se ejecutó durante más tiempo de lo esperado, por lo que asumí un error y detuve el proceso luego de unos 10 minutos ... PERO no se generó un archivo * .txt [en la carpeta Documentos]. este archivo muestra datos para
      • el último lote [que se mostraba en iTunes cuando comencé el script] ENTONCES
      • el PRIMER lote [LOTE 1, mostrando mis compras más recientes]
      • cuando fui a iTunes, noté que se había mostrado BATCH 2
    • conclusión: el comando para el botón SIGUIENTE (haga clic en el botón "Siguiente" de webArea) estaba funcionando. ¡ALGO ESTABA PASANDO! (... y mi teoría sobre las comas fue disminuida)
  4. para obtener la información que necesitaba (lotes 1-13 de 49), hice lo siguiente:
    • saltó al último lote (aquí, el 49º lote)
    • ejecutó el guión
    • Supervisé iTunes y observé que la visualización del lote cambia automáticamente hasta que se muestra BATCH 14
    • detuve la secuencia de comandos y revisé el archivo * .txt en mi carpeta Documentos
    • LO! el archivo * .txt mostró mis compras desde [mi último] BATCH 49 hasta BATCH 13!
  5. no se ha hecho todavía! Quería repetir el error inicial para registrar el error exacto y ver si mis sospechas iniciales tenían sentido. NOPE! Comencé desde el principio, y ESTO:
    • el script se ejecutó como se esperaba
    • el único error (hasta ahora, porque todavía estoy ejecutando el script) fue un tiempo de espera de conexión perdido en BATCH 21

actualmente, el script está trabajando en BATCH 32 ...

TIMING:

  • basado en la fecha de creación del archivo * .txt generado y los tiempos de modificación (que también estoy monitoreando), parece que cada lote tarda aproximadamente 3 minutos en procesarse y actualizarse dicho archivo * .txt.
  • hasta ahora, para mis 49 lotes (tiempo de espera de conexión perdido NO incluido) se toma ...
    • LOTES 1-21 = @ 45 minutos
    • LOTES 21-49 (en progreso: lote AHORRADO actual = 34) = @ 30 minutos

Lo sé ... TMI! TMI!
¡Pero espero que esto ayude!



EDIT:

  1. RE: # 5 arriba ... "el único error (hasta ahora, porque todavía estoy ejecutando el script) fue un tiempo de espera de conexión perdido en el LOTE 21"
    • reinicié el script, comenzando en BATCH 21 (donde ocurrió el tiempo de espera de conexión perdida)
    • esperaba que terminara en el LOTE 1 ... NOPE! siguió funcionando, sin interrupciones, hasta que se redondeaba sobre sí mismo y se grababa hasta el LOTE 20 (que se mostrará LOTE 21 en iTunes una vez completado)

CONCLUSIÓN: la secuencia de comandos se ejecutará de BATCH [n] a BATCH [n-1] (siempre que NO haya tiempos de espera ni interrupciones)

    
respondido por el Dorsey Krofft1 28.03.2017 - 05:13

Lea otras preguntas en las etiquetas