Agregue la canción que se está reproduciendo actualmente a Apple Music usando AppleScript Editor

Estoy tratando de crear un AppleScript que agregue 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 "Agregar canciones a la biblioteca al agregar a la lista de reproducción" en verdadero y luego usé el siguiente código AppleScript a continuación:

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

Lo que sucede es que agrega la canción a la lista de reproducción y luego se elimina automáticamente de la lista de reproducción y no se agrega a mi biblioteca.

Cuando agrego la canción a la lista de reproducción manualmente, la pista permanece en la lista de reproducción y se agrega a mi biblioteca.

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

Personalmente, no soy un usuario de Apple Music, así que no tengo experiencia con su uso, ¡pero me encantaría ayudar! Solo para aclarar, cuando dices "... agrega la pista actual que estoy escuchando en Apple Music a mi biblioteca". ¿Quiere decir que guarda la canción para escucharla sin conexión en su biblioteca o que simplemente la agrega a una lista de reproducción?
@Tom Quiero decir que quiero que la canción se guarde en mi biblioteca. No quiero que se guarde para estar sin conexión.
Acabo de probar el script que pegaste y funciona perfectamente, pero solo con mi biblioteca local de iTunes. Me disculpo por no poder brindar más ayuda, ya que personalmente no tengo Apple Music, por lo que no puedo replicar el problema e intentar encontrar una solución como resultado. ¡Los mejores deseos! PD: Solo una corazonada, pero tal vez el problema tenga algo que ver con que Apple no quiera que sus medios sean controlados por scripts o podría ser simplemente un error...
Eche un vistazo aquí hints.macworld.com/article.php?story=20090709085206245 tal vez pueda modificar este script para que se ajuste a sus necesidades.

Respuestas (4)

Yo tenía la misma pregunta hoy. No conozco AppleScript (la primera vez que lo usé fue para hacer esto), por lo que este código probablemente sea muy ineficiente en cuanto a sintaxis, pero no quería arriesgarme a romperlo al refactorizarlo.

Resulta que la única forma de agregar una canción a la biblioteca en cada escenario usando AppleScript es obligar a la aplicación a ingresar al minirreproductor y luego usar el botón "Agregar a la biblioteca" en la barra de menú. Puede eliminar la parte del minirreproductor del script si no necesita 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
Esto no funcionó para mí lamentablemente. Saltó a la siguiente canción sin agregarla a mi biblioteca.

esto parece funcionar bastante bien:

tell application "iTunes"
    duplicate current track to source "Library"
end tell
Para mí, no siempre funciona, así que envolví la respuesta de mingwei en un intento y, en caso de error, ejecuto el script de @jackgmarch de la otra respuesta... esto parece ser 100% confiable con la ventaja de no tener que hacerlo siempre. omitir la canción (según sea necesario para evitar un error en la respuesta más votada arriba).

Esto funciona para mí: me encanta la canción y la agrego a la biblioteca (tengo una lista inteligente para mostrar las canciones que me gustan, pero solo 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

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 acceso a medias a su propia API dentro de su propio lenguaje de secuencias de comandos, 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 recibió un error: solo se pueden duplicar las pistas de suscripción a la fuente de la biblioteca.

Pero, si arrastras la maldita canción (que ahora es parte de la biblioteca, puedes agregarla a la lista de reproducción, por lo que es algo de su parte).