Mi piacerebbe creare una playlist intelligente in iTunes basata su una cartella specifica (gestisco manualmente la mia libreria multimediale).
È in qualche modo ancora possibile in ITunes 12 (anche se riguarda lo scripting)?
Io non la penso così Sembrano utilizzare le informazioni dal database / libreria di iTunes, quindi come fanno a sapere qualcosa su una cartella casuale nel tuo computer?
Potresti comunque simularlo usando Folder Actions o launchd, ma nessuno dei due è perfetto.
Cartella Azioni funziona solo per i nuovi file in una directory e fornisce l'elenco dei file aggiunti al programma / script che verrà eseguito in modo da sapere cosa è cambiato.
launchd d'altra parte eseguirà il tuo script / app ogni volta che qualcosa cambia nella cartella (s), puoi monitorare mupltiple, ma non ti dirà quale percorso è cambiato o come - aggiunto o rimosso ecc.
Vorrei andare con launchd personalmente. Se si tratta di una singola cartella, puoi codificarla nel tuo script.
Per quanto riguarda lo script, prova questo ...
set dpath to "/some/path/test/"
set qdpath to quoted form of dpath
set listname to "MyList"
set adpath to (POSIX file dpath as alias)
# Get audio files in selected folder
# -- alas no recursive search results without a lot more code... :(
# -- or use mdfind or other command line tool using 'do shell script...'
set afiles to {}
tell application "Finder"
repeat with ext in {".mp3", ".m4a"}
set l to (every file in adpath whose name contains ext)
repeat with f in l
set end of afiles to (f as alias)
end repeat
end repeat
end tell
tell application "iTunes"
if not (user playlist listname exists) then
make new user playlist with properties {name:listname}
end if
# Built a list of existing list tracks so we don't have duplicates...
set itracks to {}
try
set itracks to (get location of every track in playlist listname)
end try
set view of window 1 to playlist listname
# Add not already in playlist
repeat with afile in afiles
if afile is not in itracks then
try
set tid to (add afile to playlist listname)
end try
end if
end repeat
# Remove any tracks from the itunes playlist not in the folder
# and from the iTunes database else they still show up as invalid tracks...
set iItems to (every track in playlist listname)
set iLib to library playlist named "Library"
repeat with iItem in iItems
set loc to location of iItem
if loc is not in afiles then
set pid to persistent ID of iItem
log "Removing: " & loc
try
# Thanks Doug Adams, it was driving me nuts....
delete (some file track of library playlist 1 whose persistent ID is pid)
end try
delay 1
end if
end repeat
end tell
In realtà è divertente vederlo reagire all'aggiunta e alla rimozione di file dalla cartella. Divertiti ....:)
Infine, ti consiglio di controllare questi URL.
www.macissues.com/2015/02/02/how-to-use-launchagents-to-monitor-folder-contents-in-os-x/ apple.stackexchange.com/questions/6658 /
Leggi altre domande sui tag itunes applescript