1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

[Script] iPhoto Mediathek aufräumen (iPhoto-Diet-Ersatz)

Dieses Thema im Forum "Fotosoftware" wurde erstellt von Tekl, 12.02.09.

  1. Tekl

    Tekl Fairs Vortrefflicher

    Dabei seit:
    01.06.05
    Beiträge:
    4.622
    Hi Leute,

    es nervt mich schon lange, dass es irgendwie keinen Nachfolger von iPhoto Diet gibt und wie man hier immer wieder liest, geht es auch anderen so.

    Deswegen habe ich mal versucht ein AppleScript zu basteln:

    Replace Originals with Modified Photos
    Kleines AppleScript für iPhoto ’09, welches bei bearbeiteten Bildern die nicht mehr benötigten Originale entfernt. Dabei wird das Original in den Papierkorb geschoben und das bearbeitete Bild an den Ort des Originals verschoben. Da iPhoto diese Änderung nicht bemerkt, wird abschließend die Funktion „Zurück zum Original“ ausgeführt.

    Installation: Entweder einfach per Doppelklick ausführen oder in den Ordner ~/Library/Scripts/Applications/iPhoto kopieren, welcher ggf. noch angelegt werden muss.

    Download hier: http://www.tekl.de/deutsch/Kleine_Helferlein.html

    Das Skript wurde schon von vielen erfolgreich eingesetzt, aber dennoch: BENUTZUNG AUF EIGENE GEFAHR!

    Hier noch eine kleine Schritt-für-Schritt-Anleitung:

    1. Starte iPhoto
    2. Wähle die Bilder aus, welche du „bereinigen“ möchtest
    3. Starte das Skript/Programm
    4. Du wirst nun gefragt worauf die Funktion angewendet werden soll
    5. Wähle dort „Ausgewählte Fotos”
    6. Nun passiert folgendes:
    7. Alle markierten Bilder werden dem neu angelegten Album „Fotos in Bearbeitung“ zugewiesen
    8. Diese Album wird nun von meinem Skript abgearbeitet
    9. Nach erfolgreicher Bearbeitung wird das Album in „Bearbeitete Fotos“ umbenannt
    10. Es erscheint ein Hinweis, dass die Funktion „zurück zum Original“ ausgeführt werden muss
    11. Wenn du den Hinweis schließt, sollte direkt schon die Funktion „Zurück zum Original“ aufgerufen sein
    12. Die bestätigst du mit OK
    13. Sollte die Funktion „Zurück zum Original“ nicht automatisch aufgerufen worden sein, musst du sie manuell über einen Rechtsklick auf alle markierten Bilder aufrufen.
    14. Danach kannst du das Album „Bearbeitete Fotos“ löschen

    Sollte was schief gegangen sein, findest du die Originale noch im Papierkorb im Finder. Evtl. empfiehlt es sich zuvor den Papierkorb zu leeren.

    Das Skript auf alle Fotos loszulassen sollte wohl überlegt sein. Bei sehr vielen Bildern wird das Skript recht langsam. Besser alle Fotos in mehreren Blöcken abarbeiten.
     
    #1 Tekl, 12.02.09
    Zuletzt von einem Moderator bearbeitet: 23.02.10
  2. Tekl

    Tekl Fairs Vortrefflicher

    Dabei seit:
    01.06.05
    Beiträge:
    4.622
    Ich habe das Skript nun mal ausgiebiger getestet. Leider gibt es in seltenen Fällen Ereignisse wo der Ereignis-Ordner in "Modified" einen anderen Namen hat als in "Originals". Warum das so ist, ist mir nicht klar. Leider kommt mein Script damit nicht zurecht, da ich den Originals-Ordner mehr oder weniger raten muss.

    Ansonsten habe ich das Skript erfolgreich auf mehrere 100 Bilder angewendet. Da es aber nicht besonders schnell ist, habe ich es mal etwas verbessert:

    v0.1.1:
    - Da man AppleScript die Auswahl nicht 'retten' kann, wird nun ein Album angelegt, welches alle bearbeiteten Bilder enthält. So wird sichergestellt dass das Skript auch noch funktioniert wenn während der Ausführung versehentlich in iPhoto die Auswahl geändert wird.
    - Das Skript wählt jedes Fotos einzeln aus, welches bearbeitet wird. So sieht man, dass sich was tut.
     

    Anhänge:

  3. Tekl

    Tekl Fairs Vortrefflicher

    Dabei seit:
    01.06.05
    Beiträge:
    4.622
    Haben die, die runtergeladen haben das Skript auch getestet? Hat es bei euch funktioniert?
     
  4. Nighthawk

    Nighthawk Linsenhofener Sämling

    Dabei seit:
    16.12.06
    Beiträge:
    2.558
    Danke schonmal auf jeden Fall. Werde es bei Gelegenheit testen.
     
  5. moog_t

    moog_t Erdapfel

    Dabei seit:
    28.02.09
    Beiträge:
    1
    Hi! Wäre es viel Arbeit das Script auch auch iPhoto '08 anzupassen? Dann würde ich es sehr gerne ausgiebigst testen!

    Liebe Grüße /moog_t.



     
  6. Tekl

    Tekl Fairs Vortrefflicher

    Dabei seit:
    01.06.05
    Beiträge:
    4.622
    Keine Ahnung, habe kein iPhoto '08. Hast du es denn schon ausprobiert? Du kannst das Skript im Skripteditor bearbeiten, so dass es nicht meckert wenn du kein iPhoto '09 hast. Ich kann mir gut vorstellen, dass es auch mit älteren iPhotos klappt. Aber hier gilt um so mehr vorher ein Backup zu machen oder es an wenigen Bildern zu testen.
     
  7. hernadi

    hernadi Idared

    Dabei seit:
    12.04.05
    Beiträge:
    29
    Das Script 0.1. funktioniert blendend! Danke !!! Ich mag es sogar lieber als iPhoto diet.

    Noch eine Frage zu Version 0.1.1. Ich verstehe die Beschreibung nicht. "Da man AppleScript die Auswahl nicht 'retten' kann, wird nun ein Album angelegt, welches alle bearbeiteten Bilder enthält. So wird sichergestellt dass das Skript auch noch funktioniert wenn während der Ausführung versehentlich in iPhoto die Auswahl geändert wird."

    Was heißt das genau? Werden alle gelöschten Originale in ein Album gelegt? Wenn ich es wörtlich nehme, blick ich gar nicht mehr durch, denn was soll es bringen alle "bearbeiteten Bilder", sprich gekippte und verbesserte, die ja eh schon in der Library sind und die man behalten möchte, einem neuen Album zuzuordnen ??? Und warum sollte man während das Script läuft die Auswahl ändern ???

    "Das Skript wählt jedes Fotos einzeln aus, welches bearbeitet wird. So sieht man, dass sich was tut."

    Das sieht man doch auch wenn sich der Papierkorb füllt :)

    Woran es liegt, dass "Modiefied Ordner" gelegentlich anders heißen? Vielleicht daran, dass man ab und zu Ordner nach dem Import in ein Ereignis umbenennt. Hatte mal ein Ereignis ohne Namen vom iPhone importiert. Es wurde mit dem Datum als "Namen" automatisch benannt. Später hab' ich es umbenannt und festgestellt, dass der Ordnername im Finder aber immer noch das "Datum" war, auch wenn das Ereignis jetzt ganz anders hieß. Normalerweise heißen die Finder-Ordner ja so wie die Ereignisnamen, die man beim Import vergibt. Vielleicht hängt's da ja.

    Noch ein andere Frage: "Installation: Entweder einfach per Doppelklick ausführen oder in den Ordner ~/Library/Scripts/Applications/iPhoto kopieren, welcher ggf. noch angelegt werden muss."

    Hmmm... was soll denn passieren wenn man diesen Ordner in der Home Library anlegt - ein neuer Button in iPhoto vielleicht? Läuft's dann automatisiert? Verstehe nicht was das Kopieren bewirkt. Ich kenne mich mit Scripts nicht so gut aus :(

    Aber wirklich Dank für diesen längst überfälligen iPhoto-Diet-Ersatz!
     
  8. Tekl

    Tekl Fairs Vortrefflicher

    Dabei seit:
    01.06.05
    Beiträge:
    4.622
    Schön, endlich mal jemand, der es ausgiebiger getestet hat.

    Das Problem ist, dass das Skript ja nur die ausgewählten Bilder bearbeiten soll. Wenn sich aber während die Bilder abgearbeitet werden die Auswahl ändert, kommt das Skript durcheinander. Normalerweise kann man in AppleScript so eine Auswahl zwischenspeichern, bei iPhoto klappt das aber nicht. Deswegen der Umweg über ein Album, darauf kann man dann unabhängig von der Auswahl vom Skript aus zugreifen.

    Empfindest du das als störend?

    Stimmt, das könnte sein. Mal schauen, ob man evtl. das Skript noch ergänzen kann, dass es auch die Ordnernamen ans Ereignis anpasst.

    Dann erscheint das Skript im Skriptmenü, welches man über das AppleScript-Dienstprogramm aktivieren kann.
     
  9. Tekl

    Tekl Fairs Vortrefflicher

    Dabei seit:
    01.06.05
    Beiträge:
    4.622
    Ich habe mal nachgeschaut. Leider kann ich mit AppleScript nicht den Namen eines Ereignisses ermitteln, somit kann ich leider nicht den Ordnernamen korrigieren. Leider. Hätte schwören können dass es geht. Apple hat die AppleScript-Schnittstelle nicht mehr mit erweitert.
     
  10. t_heinrich

    t_heinrich Starking

    Dabei seit:
    19.12.05
    Beiträge:
    221
  11. Tekl

    Tekl Fairs Vortrefflicher

    Dabei seit:
    01.06.05
    Beiträge:
    4.622
    Danke für die Rückmeldung. Die erste Meldung besagt, dass die Option "Zugriff für Hilfsgeräte aktivieren" unter Systemeinstellungen/Bedienungshilfen nicht aktiviert sei. Ist das bei dir der Fall? War das Fenster mit den Bedienungshilfen während des Skriptlaufs offen? Die zweite Meldung ist mir unerklärlich, da das Skript sich ja nicht selber modifizieren und speichern will.

    Es könnte aber auch schlicht ein Timing-Problem sein, wovon AppleScript leider sehr gerne mal betroffen ist. D.h. ein Befehl wurde noch nicht ganz abgearbeitet während der nächste ausgeführt wird. Hast du während des Skriptlaufs noch was anderes gemacht?
     
  12. t_heinrich

    t_heinrich Starking

    Dabei seit:
    19.12.05
    Beiträge:
    221
    Hallo Tekl,

    vielen Dank für deine Rückmeldung, habe jetzt übers verlängerte WoEn nochmal ausgiebig getestet und dabei paralell nichts am Mac gemacht.
    Also ich habe jetzt nicht alle 8.000 Bilder genommen, sondern einzelne Events, die meistens so in 1.000er Blöcken aufgeteilt sind.
    Hier lief das Skript einfwandfrei durch.
    Allerdings bekomme ich von AppleScript am Schluß immer eine Info, dass eine Zeitüberschreitung stattgefunden hat.

    Ansonsten wie schon geschrieben eine sehr feine Sache dein Skript!

    Grüße Thomas
     
  13. Tekl

    Tekl Fairs Vortrefflicher

    Dabei seit:
    01.06.05
    Beiträge:
    4.622
    Interessant wäre zu wissen, wo genau ein Timeout auftritt. Der ließe sich ggf. umgehen.
     
  14. t_heinrich

    t_heinrich Starking

    Dabei seit:
    19.12.05
    Beiträge:
    221
    Mmmh, wie kann ich das denn feststellen?
    Wenn ich mich recht entsinne, sehe ich diese Meldung erst nach dem Abschlußinfofenster deines Skriptes.
    Also ich bestätige die Info, dass x Bilder verschoben worden sind und dann erhalten ich die Meldung.
    Wenn es eine Möglichkeit des Eingrenzens gibt, kann ich es gerne ausprobieren, wobei bei mir mittlweile alle Bilder entsprechend verschoben sind.

    Unabhängig davon: müssten den im Ordner Originals nicht die Bilder entsprechend meiner Ereignisse sortiert sein?
    Dies ist bei mir nämlich nicht der Fall.

    Gruß Thomas
     
  15. Tekl

    Tekl Fairs Vortrefflicher

    Dabei seit:
    01.06.05
    Beiträge:
    4.622
    Die Eingrenzung könnte schon reichen. Mal schauen.

    Das mit der Sortierung habe ich aber jetzt nicht verstanden. Was meinst du damit?
     
  16. t_heinrich

    t_heinrich Starking

    Dabei seit:
    19.12.05
    Beiträge:
    221
    OK, war vielleicht ein wenig zu oberflächlich beschrieben.
    Ich habe mir mal etwas genauer die Struktur in der Datenbank selbst angeschaut.
    Also in iPhoto habe ich alle meine Fotos (ca. 8000 Stk.) in Alben organisiert und deshalb insgesamt nur 8 Ereignisse (Urlaub, Job, Schule, Freunde usw...).
    Genau diese Ereignisse finde ich auf Ordnerebene im Ordner "Modified" nach Jahren unterteilt wieder. Also Ordner "Modified" -> Ordner "zB 2001, 2002..." -> Ereignis "job".
    Bei dem Ordner "Originals" habe ich auch die Ordner mit den Jahreszahlen, aber dann die Ereignisse als Datum benannt, so wie sie anscheinend beim importieren erzeugt worden sind.
    Oder hat das Ganze so seine Berechtigung? Ich bin davon ausgegangen, dass die Ordnerstruktur in den beiden Ordnern "Originals" und "Modified" gleich sein muß.

    Grüße Thomas

    PS: Anders gefragt, gibt es irgendwo eine gute Erklärung über den Aufbau der iPhoto Bibliothek?
     
  17. Tekl

    Tekl Fairs Vortrefflicher

    Dabei seit:
    01.06.05
    Beiträge:
    4.622
    Achso, das Problem wurde hier ja schon angerissen. Das Problem ist, dass iPhoto beim Umbenennen von Ereignissen irgendwie nicht alle Ordner ändert, sondern die Import-Struktur beibehält. Wäre an sich keine Problem, wenn Apple es zulassen würde, dass man per AppleScript den genauen Speicherort des Bildes ermitteln könnte. Zumindest habe ich noch nicht rausgefunden wie es gehen könnte. Das ist leider die große Einschränkung bei dem Skript.
     
  18. sedna

    sedna Pomme Etrangle

    Dabei seit:
    22.10.08
    Beiträge:
    911
    Hallo Tekl!
    Erstmal vorweg: Schöne Idee mit deinem Helfer-Skript!

    Was meinst Du damit? Suchst du den Pfad zum Original?
    Code:
    original path
    image path zeigt den Pfad zum aktuell eingestellten Bild an (also Original oder Fälschung)
    original path immer den Pfad zum Original

    By the way! Habe ich das hier richtig herausgelesen, dass man nur selektierte Bilder austauschen kann? Wenn dem so ist, wäre es doch nett, den Usern auch eine Option zu geben, alle "nicht mehr benötigte Originale" in einem Rutsch zu entfernen.

    Hat t_heinrich wirklich 8000 Bilder selektiert? Cool! :cool: :p
     
  19. Tekl

    Tekl Fairs Vortrefflicher

    Dabei seit:
    01.06.05
    Beiträge:
    4.622
    Mensch sedna. Geht das schon immer? Ich dachte ich hätte das probiert. Meine Recherchen hatten auch meine Vermutungen bestätigt.

    Es direkt auf alle anzuwenden war mir erst mal zu riskant, deswegen nur auf Auswahl.

    Weißt zu zufällig noch, wie man den Event-Namen rausbekommt und dann auch noch die Pfade ändert?
     
  20. sedna

    sedna Pomme Etrangle

    Dabei seit:
    22.10.08
    Beiträge:
    911
    Hallo Tekl!

    Die Events herauszubekommen, würde wohl etwas aufwendiger werden.
    Aber was meinst Du mit Pfade ändern?
    Ich habe den Thread mal durchgelesen, kann aber das "Problem" nicht nachvollziehen. Kannst Du mir noch mal (in einfachen Worten :-D) erklären, was das mit den Events auf sich hat.
    Möchtest Du etwa in die Dateistruktur von der iPhoto Library eingreifen?

    Zu den Events:
    Wie Du schon geschrieben hast, ist events in der iPhoto Suite nicht vertreten.
    Also müsste man die Events aus folgender Datei auslesen:
    ~/Pictures/iPhoto Library/AlbumData2.xml
    Das geht mit AppleScript ganz gut. Beispiele zu xml scripting findest Du im Netz

    Diese Datei alleine wird dir aber nicht helfen, da dort die Fotos mit einer Zahl benannt sind. Also müsstest Du erst mal die zum Foto gehörige Zahl aus dieser Datei extrahieren:
    ~/Pictures/iPhoto Library/AlbumData.xml

    Uff, ganz schön aufwändig. Aber einen anderen Weg sehe ich gerade nicht.

    Sedna
     

Diese Seite empfehlen