2009-02-10 13 views
7

Seriamente, sono imbarazzato persino a chiedermelo.Domanda su Applescript - Aggiunta di tracce alle playlist

Ho un Applescript che dovrebbe creare una playlist di un gruppo di interi album. Tutto funziona bene, tranne che per aggiungere effettivamente le tracce alla playlist. Ecco il codice rilevante:

repeat with theAlbum in randAlbums 
    set these_tracks to (tracks of library playlist 1 whose album is theAlbum) 
    repeat with the_track in these_tracks 
     add the_track to playlist thePlaylist (* doesn't work *) 
    end repeat 
end repeat 

L'errore che ottengo è "iTunes ha ottenuto un errore: Si è verificato un tipo di descrittore non corrispondente."

randAlbums è un elenco di nomi di album unici e la playlist è una playlist creata in precedenza nello script.

Ho battuto la testa contro questo per quello che sembra una settimana e non sono stato in grado di capirlo. Grazie in anticipo per qualsiasi tipo di assistenza si propone :)

risposta

8

Duplicate è il comando che vuoi Prova questo:

repeat with theAlbum in randAlbums 
    duplicate (tracks of library playlist 1 whose album is theAlbum) to thePlaylist 
end repeat 

Entro l'interfaccia di iTunes add viene utilizzato per aggiungere una nuova traccia per la libreria di iTunes utilizzando un percorso del file system, mentre duplicate viene utilizzato per inserire un riferimento a una traccia esistente in una playlist.

Quando si utilizza il comando aggiungi, iTunes scoprirà che la traccia è già parte della libreria e fa ciò che si desidera, ma non prima di leggere i metadati del file, pianificandoli per il recupero della copertina dell'album, ecc. Tutto questo equivale a un'operazione piuttosto lenta, quindi se la stai usando in un ciclo per un numero elevato di tracce, iTunes rallenterà fino alla ricerca per indicizzazione.

Il duplicato esegue una ricerca nel database nativo e aggiunge i risultati alla playlist tutto in una volta, quindi è molto veloce.

0

Applescript è davvero strano ... ma checkout gli script here dougscripts.com

sembra che egli usa duplicare e non aggiungere quando si aggiunge a una playlist. Sto guardando lo script One Song From Each

Hmmm ... che ne dici?

add (a reference to the_track) to playlist thePlaylist 
+0

Ho esaminato * molti * degli script sul sito di Doug per l'ispirazione e/o un indizio su come risolvere questo problema, ma senza successo. grazie però :) – inkedmn

+0

Sì, ho effettivamente aperto anche quello script. Sfortunatamente, "duplicato" mi dà lo stesso errore: \ – inkedmn

0

Prova a cambiare quella linea a:

add (get location of the_track) to playlist thePlaylist 

o, se thePlaylist è già un riferimento riproduzione (anziché solo la stringa nome di un elenco di riproduzione):

add (get location of the_track) to thePlaylist 
+0

Quando lo faccio, ottengo questo errore: "iTunes ha un errore: alias \" Macintosh HD: Utenti: inkedmn: Musica: iTunes: iTunes Musica: Vision Of Disorder: For The Bleeders: 01 Choke.mp3 \ "non capisce il messaggio di aggiunta." Altre idee? Grazie! – inkedmn

0

Prova:

copy the_track to end of playlist thePlaylist 

invece.