Ich verwalte meine Musik- und Fotobibliotheken händisch. So möchte ich sicher stellen, dass, wenn es iPhoto oder iTunes nicht mehr gibt, ich trotzdem meine Ordnung habe. Außerdem habe ich ein besseres Gefühl die Struktur nicht ganz irgendeiner Software zu überlassen, wenn letzteres auch für weniger nerdige Anwender weitaus bequemer ist.
Problematisch wird es allerdings, wenn bei einer Selbstverwaltung ein Umzug auf eine andere Festplatte ansteht. Dies war bei mir der Fall und hinzu kam, dass die neue Platte im Hausnetz hängt. Bei iTunes reichte ein Export und anschließender Neuimport der Mediathek. Bei iPhoto gibt es leider keine derartige Möglichkeit, auch nicht mit einer Zusatzsoftware wie etwa iPhoto Library Manager. Das Problem: iPhoto verwaltet die Daten als Aliase intern in der iPhoto Library, welche man mit einem Rechtsklick einsehen kann. Dort im Ordner Originale befinden sich die Aliase die nun auf das “falsche” Verzeichnis zeigten. Nach langem Probieren und verschiedenen Lösungsanzätzen habe ich mich für eine Neuzuweisung der Aliase mit AppleScript entschieden.
Leider gab es aber auch hier erst einmal Probleme, da AppleScript nicht in der Lage ist den Pfad zur Originaldatei auch dann auszulesen, wenn der Pfad nicht mehr erreichbar ist; ergo die alte Festplatte nicht verfügbar ist. Zwar kann man über die Finder-Info weiterhin den Pfad sehen, doch eben nicht auslesen. Dies lieferte immer nur ein »Mussing Value«. Allenfalls über GUI-Scripting ist dies möglich, doch das wäre nicht praktikabel gewesen. Glücklicherweise aber hatte ich die alte Platte noch zur Hand, und so reicht ein bloßes Anschließen aus, um den Pfad auszulesen um damit ein neuses Alias zu erzeugen. Entschiedend war der Pfadanfang. Den brauchte ich nur mit dem neuen zu ersetzen. Also »Alte Platte:Fotos:usw.« in »Netzwerk:Neue Platte:Fotos:usw.«.
Übrigens: iPhoto kam fast mit der neuen Platte zurecht. Es fragt nämlich nach dem ersten Alias welches man manuel zuweisen konnte. Alle weiteren Klicks auf andere Fotos in iPhoto wurden sofort erkannt, bzw. neu zugeordnet und auch in die Aliasdatei geschrieben. Leider aber kam bei jedem Foto eine dämliche Fehlermeldung von wegen “Ein Netzwerkfehler ist aufgetreten”. Und das hätte bedeutet, 10 000 Mal diese Meldung wegzuklicken.
Hier das Script:
set AppleScript's text item delimiters to ":"
with timeout of 3600 seconds
tell application "Finder"
activate
set theFolderList to selection
repeat with theFolder in theFolderList
if kind of theFolder is "Ordner" then
set theFolder to theFolder as string
set theFiles to items of folder theFolder
repeat with theFile in theFiles
try
set theName to name of theFile
set originalItem to original item of theFile
set theOldPath to originalItem as string
set theOldPathEnd to text items 2 thru -1 of theOldPath
set theNewPathBegin to "Netzwerkplatte:Fotos:"
set theNewPath to theNewPathBegin & theOldPathEnd
move theFile to trash
make new alias file to theNewPath at folder theFolder with properties {name:theName}
end try
end repeat
end if
end repeat
end tell
end timeout
say "done"
