iTunes-Tipp: Wiedergabelisten für ganze Alben automatisch erstellen
Die Playlistenverwaltung in iTunes 11 ist dank intelligenter Wiedergabelisten an sich schon recht praktisch. Ein kleines AppleScript erweitert sie darüber hinaus um eine Funktion, die man sonst vergeblich sucht. Es durchsucht iTunes nach kompletten Alben und erstellt je eine Wiedergabeliste.
Für die automatische Erstellung von Alben-Playlists für alle Alben, die als „komplett“ gelten, muss man nur das folgende AppleScript ausführen. Das klingt komplizierter als es ist. Einfach den AppleScript-Editor aufrufen, entweder über Spotlight oder aus dem Ordner Programme/Dienstprogramme.
Dort das Skript hineinkopieren und auf „Ausführen“ klicken. Anschließend findet man in seiner Mediathek eine Reihe neuer Wiedergabelisten mit dem Vorsatz „FA“ (für „full album“). Dieses Präfix kann in dem Code nach belieben geändert oder entfernt werden. Dazu (vor dem Ausführen natürlich) in Zeile 8 des Skripts den entsprechenden Eintrag zwischen den beiden Anführungszeichen ändern oder ganz entfernen.
Achtung: Es gibt kein zurück. Ist das Skript einmal durch alle kompletten iTunes-Alben gekrabbelt und hat für jedes eine Liste erstellt, muss man sie manuell löschen, um sie alle wieder loszuwerden. Das Skript kann man nach der Prozedur getrost löschen.
Komplett ist das Album übrigens, wenn alle Titel, die entsprechend der Angaben in den Metadaten vorhanden sein müssten, auch wirklich da sind. Das Skript generiert damit zum Beispiel keine Wiedergabeliste für ein Album mit 20 Titeln, von denen nur 5 in der Mediathek gespeichert sind.
Brad Campbell schuf die Basis für das Skript, aus der Forenuser Aphex5 bei StackExchange die folgenden Zeilen erstellt hat:
-- Creates a playlist for each full album you have in iTunes
-- Set the playlistPrefix and playlistSuffix as desired before running
-- Based on code by Brad Campbell
-- http://www.bradcampbell.com/2009/05/26/make-a-whole-album-playlist-in-itunes/
tell application "iTunes"
set playlistPrefix to "FA: "
set playlistSuffix to ""
-- The "FA: " prefix will help cluster full albums in iTunes' playlists,
-- and is narrow enough to not get in your way when viewing on an iPhone
set albumBuckets to {} as list
set allSongs to (every track of library playlist 1 whose enabled is true and podcast is false and kind contains "audio") as list
-- Find all partial albums in iTunes
repeat with currentTrack in allSongs
set albumName to album of currentTrack as text
set artistName to artist of currentTrack as text
-- First check for missing values, then perform integer comparison
-- Zero is on the left to force interger type coercion, just in case
if album of currentTrack is not missing value and 0 is less than length of albumName then
if artist of currentTrack is not missing value and 0 is less than length of artistName then
if track number of currentTrack is not missing value and 0 is less than track number of currentTrack then
if track count of currentTrack is not missing value and 0 is less than track count of currentTrack then
if albumBuckets does not contain album of currentTrack then
copy album of currentTrack to the end of albumBuckets
end if
end if
end if
end if
end if
end repeat
repeat with currentAlbum in albumBuckets
set albumSongs to (every track of library playlist 1 whose album is currentAlbum)
set firstTrack to first item of albumSongs
-- Filter album list to act only on full albums
if (count of albumSongs) is equal to track count of first item of albumSongs and 1 is less than (count of albumSongs) then
-- This is a full album, construct the playlist
-- Sort tracks by track number
set albumSongsSorted to {} as list
repeat with i from 1 to (count of albumSongs)
repeat with trk in albumSongs
if track number of trk is i then
set nextSong to trk
copy nextSong to the end of albumSongsSorted
end if
end repeat
end repeat
-- Don't show artist name for compilations
if firstTrack is not compilation then
set playlistNameArtist to artist of firstTrack & " - "
else
set playlistNameArtist to ""
end if
set albumPlaylistName to playlistPrefix & playlistNameArtist & currentAlbum & playlistSuffix
-- Create playlist
if user playlist albumPlaylistName exists then
try
delete tracks of user playlist albumPlaylistName
end try
else
make new user playlist with properties {name:albumPlaylistName}
end if
try
repeat with trk in albumSongsSorted
duplicate trk to user playlist albumPlaylistName
end repeat
end try
end if
end repeat
display dialog "Playlists created! Check iTunes for playlists beginning with '" & playlistPrefix & "'"
end tell
(via Mac OS X Hints)



