4 votos

Añadir la canción que se está reproduciendo en Apple Music con el editor de AppleScript

Estoy intentando hacer un AppleScript que añada automáticamente la pista actual que estoy escuchando en Apple Music a mi biblioteca.

Lo que he hecho hasta ahora es establecer la opción "Añadir canciones a la biblioteca cuando se añade a la lista de reproducción" a true y luego utilizar el siguiente código AppleScript a continuación:

tell application "iTunes"
    duplicate current track to playlist "New Songs"
end tell

Lo que ocurre es que añade la canción a la lista de reproducción y luego se elimina automáticamente de la misma y no se añade a mi biblioteca.

Cuando añado la canción a la lista de reproducción manualmente, la pista permanece en la lista de reproducción y se añade a mi biblioteca.

¿Cómo puedo hacer que ScriptEditor guarde la pista actual en mi biblioteca?

6voto

Hoy he tenido la misma pregunta. No conozco AppleScript (la primera vez que lo usé fue para hacer esto) así que este código es probablemente muy ineficiente en cuanto a la sintaxis, pero no quería arriesgarme a romperlo refactorizando.

Resulta que la única manera de añadir una canción a la biblioteca en todos los casos utilizando AppleScript es forzar a la aplicación a entrar en el minirreproductor y luego utilizar el botón "Añadir a la biblioteca" en la barra de menú. Puedes eliminar la parte del minirreproductor del script si no necesitas que este script funcione con canciones que no están en listas de reproducción (por ejemplo, una radio).

tell application "System Events"
    set frontmostApplicationName to name of 1st process whose frontmost is true
end tell

tell application "System Events"
    tell process "iTunes"
        try
            tell menu bar 1
                tell menu bar item "View"
                    tell menu "View"
                        click menu item "Exit Full Screen"
                    end tell
                end tell
            end tell
        end try
    end tell
    tell process "iTunes"
        set frontmost to true
        try
            tell menu bar 1
                tell menu bar item "Window"
                    tell menu "Window"
                        click menu item "Switch to Mini Player"
                    end tell
                end tell
            end tell
        end try
    end tell
    tell process "iTunes"
        try
            tell menu bar 1
                tell menu bar item "Song"
                    tell menu "Song"
                        click menu item "Add to Library"
                    end tell
                end tell
            end tell
        end try
    end tell
    delay 0.5
    tell process "iTunes"
        set frontmost to true
        try
            tell menu bar 1
                tell menu bar item "Window"
                    tell menu "Window"
                        click menu item "Switch from Mini Player"
                    end tell
                end tell
            end tell
        end try
    end tell
end tell

tell application "iTunes"
    next track -- if you listen to another person's playlist and add the current playing track, sometimes apple music will completely stop playback (bug), so we have to skip song to avoid this
end tell

tell application frontmostApplicationName
    activate
end tell

3voto

mingwei Puntos 31

Esto parece funcionar bastante bien:

tell application "iTunes"
    duplicate current track to source "Library"
end tell

2voto

siquijor Puntos 11

Esto funciona para mí - ama la canción y añade a la biblioteca (tengo una lista inteligente para mostrar las canciones amadas, pero sólo aparecen si la canción está en la biblioteca).

tell application "Music"
    if current track is not loved then
        set loved of current track to not loved of current track
        duplicate current track to source "Library"
    end if
end tell

0voto

csaborio Puntos 13

Applescript es el RegEdit de Windows de OS X.

Deberían volarle la cabeza con una escopeta y escribir algo que no sea absolutamente horrible de usar.

Y adoro absolutamente cómo Apple ofrece un acceso a medias a su propia API dentro de su propio lenguaje de scripting, es vergonzoso en el mejor de los casos.

Esto es lo que he hecho y todavía no funciona:

tell application "Music"
    duplicate current track to source "Library"
    delay 20
    duplicate current track to playlist "Female 80s"
end tell

La música tiene un error: Sólo se pueden duplicar las pistas de suscripción a la fuente de la biblioteca.

Pero, si arrastras la maldita canción (que ahora forma parte de la biblioteca, puedes añadirla a la lista de reproducción, así que es algo por su parte.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X