Playlist intelligente in Itunes in base alla posizione del file


1

Vorrei creare una playlist intelligente in iTunes basata su una cartella specifica (gestisco la mia libreria multimediale manualmente).

In qualche modo è ancora possibile in ITunes 12 (anche se si tratta di scripting)?

Risposte:


2

Io non la penso così. Sembrano utilizzare le informazioni dal database / dalla libreria di iTunes, quindi come possono sapere qualcosa su qualche cartella casuale nel tuo computer?

Potresti comunque simularlo usando le Azioni cartella 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 eseguirai in modo da sapere cosa è cambiato.

lanciato invece eseguirà il tuo script / app ogni volta che qualcosa cambia nelle cartelle, puoi monitorare mupltiple, ma non ti dirà quale percorso è cambiato o come - aggiunto o rimosso ecc.

Vorrei andare con Launchd personalmente. Se è solo una singola cartella, è possibile codificarla nel proprio 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. Godere.... :)

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/


Grazie, Vic, per la spiegazione approfondita. Ho scritto un AppleScript che salva la posizione nel tag di descrizione (inutile). Quando avrò più tempo mi immergerò launchd.
Siepe

Nessun problema. Una soluzione simile alla tua è stata suggerita altrove, anche se non riesco a trovarla ora. Va bene se non usi il campo e ti ricordi di cambiarli tutti. In ogni caso, è stato divertente fare come non avevo mai giocato prima con gli agenti di lancio. La sceneggiatura era una versione modificata di ciò che ho scritto di recente, quindi non è stato un grosso problema.
Vic
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.