Dado un ID de álbum (por ejemplo, 1646945378) y un ID de pista (por ejemplo, 1646945384), ¿hay alguna manera de agregar una pista a la biblioteca usando AppleScript/JXA?
- macOS: Sonoma 14.2
- Música: 1.4.2.83
Sé que puedes hacer algo como
duplicate current track to playlist "Library"
Idealmente, no quiero reproducir la pista antes de agregarla a mi biblioteca, pero no puedo encontrar una forma de obtener un objeto pista compartida
solo con los ID de álbum y pista.
He descubierto cómo abrir el álbum y seleccionar la pista:
set albumID to "1646945378"
set trackID to "1646945384"
tell application "Music" to open location "itmss://geo.music.apple.com/album/" & albumID & "?i=" & trackID & "&ls=1&app=music"
Sin embargo, no puedo obtener la pista seleccionada. Este código registra listas vacías:
tell application "Music"
log (get browser window 1's selection)
log (get selection)
-- Como se está navegando por un álbum, no una lista de reproducción, ‘get browser 1's view’ no funciona tampoco
end tell
Como último recurso, pensé que podría intentar hacer clic manualmente en el botón de agregar a la biblioteca, pero no puedo averiguar cómo saber si una pista está seleccionada o no, ya que todos los elementos de la interfaz parecen tener selected:missing value
.
tell application "System Events"
tell process "Music"
set tracksList to get window 1's splitter group 1's scroll area 2's list 1's list 2
set trackGroups to tracksList's groups
-- Con la pista de ejemplo anterior, la primera pista está seleccionada
set t1 to get trackGroups's item 1
set t2 to get trackGroups's item 2
-- Cada grupo tiene un elemento secundario de la interfaz de usuario: otro grupo. Este grupo contiene cosas como
-- el número de pista, nombre, botones, etc.
log (get t1's properties) -- focused:missing value, selected:missing value
log (get t2's properties) -- focused:missing value, selected:missing value
log (get t1's group 1's properties) -- focused:false, selected:missing value
log (get t2's group 1's properties) -- focused:false, selected:missing value
end tell
end tell
Podría usar la API de Apple Music para obtener el número de pista de la pista que quiero agregar a mi biblioteca (o en mi caso específico ni siquiera necesitaría usar la API para hacer esto) y hacer clic en el botón de agregar a la biblioteca de esa manera.
Sin embargo, todo esto parece bastante tedioso y molesto para algo que creo que debería ser un comando de AppleScript integrado. ¿Hay una mejor/manera más fácil de hacer esto?
Relacionado:
- Applescript play music from iTunes URL (usando eventos del sistema para hacer clic, la respuesta ya no funciona debido a la nueva aplicación de Música)
- Applescript to cause iTunes to play an album by Apple Music URL? (no hay respuestas)