Trigger aggiorna / aggiorna le playlist intelligenti in iTunes usando Applescript?

0

Tengo l'aggiornamento live disattivato sulla maggior parte delle mie playlist intelligenti perché la modifica di qualsiasi elemento, come le classificazioni, per un brano attualmente in riproduzione potrebbe far scomparire il brano dalla playlist se non soddisfa più i criteri della playlist smart. La canzone smette di suonare e la playlist si ferma. Finora, la soluzione più semplice è stata far funzionare automaticamente un Apple Applescript nel cuore della notte per chiudere iTunes e quindi riavviarlo, forzando così l'aggiornamento di tutte le mie playlist intelligenti. Questo funziona. È anche abbastanza facile fare clic con il tasto destro su una playlist intelligente e selezionare "Aggiorna playlist smart". Ma quello che preferisco fare è usare un Applescript per aggiornare tutte le mie playlist intelligenti e assegnargli un tasto di scelta rapida (usando BetterTouchTool).

È possibile utilizzare Applescript per aggiornare le playlist di iTunes smart?

    
posta 2oh1 05.06.2015 - 21:26
fonte

3 risposte

0

Il credito qui va alla risposta di cui sopra, da lontano. Ho solo pensato che sarebbe stato utile postare la risposta completa nel caso qualcuno cercasse qualcosa di simile e trovi la mia domanda. Ecco la soluzione con cui ho finito. Salva questo come un applescript e poi assegnagli un tasto di scelta rapida usando BetterTouchTool. Questo script aggiornerà la playlist smart attualmente in riproduzione. E se iTunes non è l'app in primo piano, questo script passerà a iTunes, aggiornerà la playlist e ti riporterà all'app che stavi utilizzando (comando + scheda). Questo funziona per me! Grazie ancora a Fartheraway per il suo aiuto, sopra.

tell application "System Events"
    set frontmostApp to name of application processes whose frontmost is true
end tell

tell application "System Events" to tell application process "iTunes"
    set frontmost to true
    tell application "iTunes"
        try
            reveal current track
        end try
    end tell
    tell menu item "Edit Smart Playlist" of menu "File" of menu bar 1 to perform action "AXPress"
    tell button "OK" of window 1 to perform action "AXPress"
    end tell

if frontmostApp is not {"iTunes"} then
    tell application "System Events"
        key down command
        keystroke tab
        key code 123
        repeat while (exists list 2 of process "Dock")
            delay 0.1
        end repeat
        key up command
    end tell
end if
    
risposta data 17.06.2015 - 20:55
fonte
2
La voce

Update Smart Playlist si trova solo nel menu contestuale; il applescript non può accedervi. Ci sono due soluzioni alternative che posso pensare: 1. BTT: passa il mouse sopra la playlist e invoca una combinazione con il tasto destro del mouse - > tu - > ritorno. Oppure:

tell application "System Events" to tell application process "iTunes"
    set frontmost to true
    repeat 2 times
        tell menu item "Edit Smart Playlist" of menu "File" of menu bar 1 to perform action "AXPress"
        tell checkbox "Live updating" of window 1 to perform action "AXPress"
        tell button "OK" of window 1 to perform action "AXPress"
    end repeat
end tell
    
risposta data 06.06.2015 - 12:26
fonte
0

Grazie ragazzi per aver iniziato questa discussione!

Ho centinaia di playlist intelligenti nel mio iTunes, quindi attivare Live Updating manualmente è un vero dolore.

Ho dovuto giocare con le tue risposte di cui sopra per un po 'per farlo funzionare sui miei sistemi El Capitan e Sierra, ma ecco cosa ha funzionato per me:

tell application "iTunes"
activate
set frontmost to true
repeat with aPlaylist in (get user playlists)
  set n to name of aPlaylist
  set s to smart of aPlaylist as string
  if s is "true" then
    try
      set view of front browser window to playlist n
      set frontmost to true
      delay 1
      tell application "System Events" to tell application process "iTunes"
        click menu item "Edit Smart Playlist" of menu "File" of menu bar 1
        delay 1

        # To toggle the selection use the following line
        click checkbox "Live updating" of window 1

        # To enable use the below code. To disable, use the below code but change 'false' to 'true'
        #set theCheckbox to checkbox "Live updating" of window 1
        #tell theCheckbox
        #set checkboxStatus to value of theCheckbox as boolean
        #set c to checkboxStatus as string
        #if checkboxStatus is false then click theCheckbox
        #end tell

        delay 1
        click button "OK" of window 1
      end tell
    end try
  end if
end repeat
end tell
    
risposta data 29.06.2017 - 17:57
fonte

Leggi altre domande sui tag