AppleScript Question - Ajout de pistes Playlists
-
22-08-2019 - |
Question
Sérieusement, je suis gêné d'être même demander cela.
J'ai un Applescript qui est censé construire une playlist d'un tas d'albums entiers. Tout fonctionne très bien, sauf pour ajouter les pistes à fait la liste de lecture. Voici le code correspondant:
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'erreur que je reçois est « iTunes a obtenu une erreur. Une incompatibilité de type descripteur est produit »
randAlbums est une liste de noms d'album uniques et thePlaylist est une liste de lecture est créée plus tôt dans le script.
J'ai frappais la tête contre cela pour ce qui ressemble à une semaine et je ne l'ai pas été en mesure de comprendre. Merci d'avance pour toute aide que vous pouvez offrir:)
La solution
Dupliquer est la commande que vous voulez. Essayez ceci:
repeat with theAlbum in randAlbums
duplicate (tracks of library playlist 1 whose album is theAlbum) to thePlaylist
end repeat
Dans le add
d'interface iTunes permet d'ajouter une nouvelle piste à la bibliothèque iTunes en utilisant un chemin de système de fichiers, alors que duplicate
est utilisé pour placer une référence à une piste existante dans une liste de lecture.
Lorsque la commande add est utilisé iTunes éventuellement comprendre que la piste est déjà partie de la bibliothèque et de faire ce que vous voulez, mais pas avant qu'il lit les métadonnées du fichier, les horaires il pour l'album de récupération d'art, etc. Tout cela équivaut à une opération assez lente, donc si vous l'utilisez dans une boucle pour un grand nombre de pistes iTunes ralentiront à un vide sanitaire.
Dupliquer effectue une recherche de base de données native et ajoute les résultats à la liste de lecture à la fois il est très rapide.
Autres conseils
Essayez de changer cette ligne à:
add (get location of the_track) to playlist thePlaylist
ou, si thePlaylist
est déjà une référence de liste de lecture (au lieu de simplement le nom de chaîne d'une liste de lecture):
add (get location of the_track) to thePlaylist
AppleScript est vraiment bizarre ... mais les scripts ici dougscripts.com
On dirait qu'il utilise lors de l'ajout à une playlist en double et non ajouter . Je regarde le One Song De Chaque script
Hmmm ... que diriez-vous?
add (a reference to the_track) to playlist thePlaylist
Essayez:
copy the_track to end of playlist thePlaylist
au lieu.