Script für Metadatenänderung

dann bitte:
exiftool -Creator="$src" Test_mod3.jpg

und falls das erfolgreich war:
exiftool Test_mod3.jpg | grep http

und wenn das auch erfolgreich war, dann mir bitte die Test_org.jpg zippen und dropboxen.
 
Schaut gut aus:
Code:
MacBook-Pro:a Toby$ exiftool -Creator="$src" Test_mod3.jpg

    1 image files updated
Code:
MacBook-Pro:a Toby$ exiftool Test_mod3.jpg | grep http

Creator                         : http://www.stylepark.com/db-images/cms/berker/img/p246547_2200_1515-2.jpg

MacBook-Pro:a Toby$

Dropbox - Test_mod3.zip

Der Eintrag wird nun auch übernommen:
Bildschirmfoto 2015-12-12 um 23.19.35.png
 
Grade erst gesehen das du oben noch editiert hattest, hier der komplette Ordner:
Dropbox - Test_ALL.zip

Das schöne an der Einbindung der URL in den IPTC Bereich ist ja, dass es bei Änderungen der Datei bestehen bleibt.
Bildschirmfoto 2015-12-12 um 23.55.47.png
 
ja sorry, ich bin leider so editwütig oder hab' nen nervösen abzugsfinger. :p
eigentlich schaut das ja gut aus, wie eben von anfang an gewollt und eigentlich macht das script nix anderes.

ich teste die dateien jetzt mal bei mir, wenn das richtig läuft, kann es nur am script-kopieren-pasten liegen. das hatte ich schon mal.
wird evtl. erst morgen (im sinne von später) weiter gehen.
 
ich habe soeben alle dateien aus test-all.zip auf das doplet geworfen und das ergebnis ist wie gewünscht.
alle dateien mit kmditemwherefroms bekommen den creator korrekt geschrieben.
keine fehler im script.
 
Sehr merkwürdig, scheint wohl wirklich beim Kopieren des Codes zu passieren. Kannst du mal schauen inwieweit sich das von mir kopierte Script von deinem unterscheidet?
Dropbox - URLtoAUTHOR.app
 
die entzippte app lief bei mir erst nicht wirklich (app läuft an und beendet sich sofort, völlig geräuschlos).
nach öffnen mit as editor sehe ich keinen unterschied, alles wie es sein soll.
--display... auskommentieren und speichern bringt auch nix.
dann speichern unter "programm" (nix anwählen, auch kein startdialog), original überschreiben und es läuft wie gewünscht.
sehr dubios - apps kann man gezippt üblicherweise weitergeben. daran lag's nicht, denke ich.
überspeicher deins auch mal neu mit "speichern unter".

so sieht's dann bei mir aus (1.jpg=Test_mod3.jpg_original):
Code:
$ le 1*
-rw-r--r--@ 1 ki  staff  - 170081 12 Dez 21:44 1.jpg
   com.apple.metadata:kMDItemDownloadedDate    53
   com.apple.metadata:kMDItemWhereFroms    120
$ exiftool 1* | grep http
$ src=$(xattr -px com.apple.metadata:kMDItemWhereFroms 1* | xxd -r -p | plutil -convert xml1 -o - - | sed -e 's/<[^>]*>//g' | xargs); echo "$src"
http://www.stylepark.com/db-images/cms/berker/img/p246547_2200_1515-2.jpg
### hier wird 1.jpg auf die app gedropt ###
$ exiftool 1* | grep http
Creator  : http://www.stylepark.com/db-images/cms/berker/img/p246547_2200_1515-2.jpg
 
Zuletzt bearbeitet:
So langsam zweifele ich wirklich :D Auch ein überschreiben bringt nichts, es wird immer mit Error abgebrochen. An unterschiedlichen Systemen kann es eigentlich nicht liegen oder? Habe 10.11.2 mit Exiftool 10.07 der Test läuft unter dem Adminbenutzer. Auch auf dem Mac mit identischer System und Exiltool Version geht es nicht.
 
du solltest noch probieren einfach ein leerzeichen z.b. in der allerletzten zeile einzufügen und dann nochmal "speichern unter". und du nimmst auch wirklich die Test_mod3.jpg_original, umbenannt nach z.b. test.jpg?
ansonsten wird halt kurzerhand ein bash script gemacht. via terminal ging es ja auch bei dir.
wie oft in welcher zahl musst du denn die dateien damit bearbeiten?
 
du solltest noch probieren einfach ein leerzeichen z.b. in der allerletzten zeile einzufügen und dann nochmal "speichern unter".
Alles schon probiert, schon wegen des "done.", dort habe ich in einem Test "fertig." eingetippt, da die deutsche Sprachausgabe done sehr merkwürdig ausgibt (etwas wie döln)
und du nimmst auch wirklich die Test_mod3.jpg_original, umbenannt nach z.b. test.jpg?
Jap, unverändert, also "Test_mod3.jpg_original" gibt keine Fehlermeldung (wahrscheinlich da es garnicht bearbeitet wird?).
Als Test_TEST.jpg wird bei der selben Datei wieder der Fehler ausgegeben
ansonsten wird halt kurzerhand ein bash script gemacht. via terminal ging es ja auch bei dir.
Das bedeutet? ;) Wäre das dann ein Script was z.B. in Automator eingefügt werden kann?
wie oft in welcher zahl musst du denn die dateien damit bearbeiten?
Pro Datei nur ein mal ;) allerdings kommen insgesamt schon oft sehr viele Dateien zusammen*. Deshalb wollte ich eben ein Droplet, dann kann ich zwischen dem Verschieben von unterschiedlichen Ordnern kurz die Datei auf das Droplet ziehen. Eine andere Möglichkeit wäre das Script in eine Ordneraktion einzubinden (das oben angesprochene Script für Automator)

Dennoch erstmal einen riesen Dank für deine Geduld!

[edit]*ich lege eben großen Wert darauf zu dokumentieren woher die Daten kommen.
 
es werden nur *.jpg und *.tif bearbeitet, alles andere wird nicht angefasst. du kannst das im finder sehen, ob die datei modifiziert wurde. mehr endungen können jederzeit eingefügt werden (zeile #3).

speicher das mal im texteditor (nano o.ä.) in dein verzeichnis der Test_TEST.jpg-datei mit namen "attr".
Code:
#!/bin/bash
#set -vx

thefile="$1"
echo -ne "$thefile\t"
xattr -px com.apple.metadata:kMDItemWhereFroms "$thefile" &>/dev/null && \
src=$(xattr -px com.apple.metadata:kMDItemWhereFroms "$thefile" | xxd -r -p | plutil -convert xml1 -o - - | sed -e 's/<[^>]*>//g' | xargs) && \
exiftool -Creator="$src" -overwrite_original_in_place "$thefile" &>/dev/null
exiftool "$thefile" | grep Creator
echo "---"

dann mit terminal in's verzeichnis gehen und aufrufen:
Code:
bash attr Test_TEST.jpg

prüfen und ausgabe bitte posten.
 
Zuletzt bearbeitet:
"Test_TEST.jpg" ist die umbenannte "Test_mod3.jpg_original", habe sie nicht auf das Script.app gezogen sondern nur wie beschrieben folgendes eingegeben (mit Erstellung des attr):
Code:
MacBook-Pro:~ Toby$ cd /Users/Toby/Desktop/TEST

MacBook-Pro:TEST Toby$ bash attr Test_TEST.jpg

    1 image files updated

Creator                         : http://www.stylepark.com/db-images/cms/berker/img/p246547_2200_1515-2.jpg

MacBook-Pro:TEST Toby$

In InDesign wird es wie gewünscht angezeigt:
Bildschirmfoto 2015-12-14 um 22.16.17.png
 
Auch mit einem neugeladenen Testfile funktioniert es:
Code:
MacBook-Pro:TEST Toby$ bash attr B1930_TEST.jpg

    1 image files updated

Creator                         : http://www.stylepark.com/db-images/cms/berker/img/p198211_2200_1515-1.jpg

MacBook-Pro:TEST Toby$
Bildschirmfoto 2015-12-14 um 22.37.14.png
 
mehr als dubios, warum das in as nicht klappt. evtl. wissen as-leute wie @Pill mehr, wenn sie das sehen. :noplan:

ich hab jetzt mal eine bash version gemacht, die korrekt prüft und auch nur bei vorhandenem kmditemwherefroms schreibt. (korrekturversion in #51)
du kannst im verzeichnis alle jpgs so verarbeiten:
Code:
for f in *.jpg; do bash attr "$f"; done
---
ich bin leider automatordödel, deswegen schau ich mir den erst noch ein bisschen diesbzgl. an, dann geht's (morgen) weiter.
 
mehr als dubios, warum das in as nicht klappt
Definitiv! Und ich habe im Gegensatz zu dir keine Ahnung von der Materie. Also bei dir klappt das Script auch mit anderen Bildern aus dem Netz?
du kannst im verzeichnis alle jpgs so verarbeiten:
Code:
for f in *.jpg; do bash attr "$f"; done
Das ist auch ein machbarer Workaround. Ich nehme mal an da gibt es keine Begrenzung der Anzahl? D.h. ich kann da auch 50 jpegs reinwerfen?
ich bin leider automatordödel, deswegen schau ich mir den erst noch ein bisschen diesbzgl. an, dann geht's (morgen) weiter.
Muss auch nicht in Automator ;)
 
1. ja, immer wenn ein kmditemwherefroms drin ist, bzw. auch wenn nicht, dann wird aktuell ein fehlerstring reingeschrieben.

2. du kannst auch 10.000 damit bearbeiten, dauert halt und abbrechen geht mit CTRL-C. :p

3. doch doch, das wird schon noch dropfähig oder finderbedienbar werden.
 
10.000 brauch ich nich :D
habe es eben mit 20 getestet, es läuft absolut zuverlässig.
Schon bis hierhin eine mächtige Erleichterung zum manuellen Kopieren und Einfügen in die EXIF/IPTC, kann dir garnicht sagen wie dankbar ich dir bin.

zu 3. lass dir Zeit, ich hoffe doch du hast auch Spaß an der Sache :)
 
Hallo,

mögliche Fehlerquelle für das AppleScript-Problem:
do shell script benutzt sh, nicht bash, da sieht unter Umständen die PATH-Variable anders aus, was dazu führt, dass exiftool nicht gefunden wird.
Daher bitte mal im Terminal which exiftool eingeben und dann den Pfad in das Skript eingeben (bei mir wäre das dann /usr/local/bin/exiftool).

Außerdem könnte es hilfreich sein, das Error-handling etwas zu präzisieren. So sollte jetzt auch die Fehlermeldung ausgegeben werden:

Code:
on open finderObjects
    repeat with f in (finderObjects)
        if name of (info for f) ends with ".jpg" or name of (info for f) ends with ".tif" then
            try
                set thefile to quoted form of POSIX path of f
                --display dialog thefile
                --display dialog "src=$(xattr -px com.apple.metadata:kMDItemWhereFroms " & thefile & " | xxd -r -p | plutil -convert xml1 -o - - | sed -e 's/<[^>]*>//g' | xargs) && exiftool -Creator=\"$src\" -overwrite_original_in_place " & thefile
                do shell script "src=$(xattr -px com.apple.metadata:kMDItemWhereFroms " & thefile & " | xxd -r -p | plutil -convert xml1 -o - - | sed -e 's/<[^>]*>//g' | xargs) && /usr/local/bin/exiftool -Creator=\"$src\" -overwrite_original_in_place " & thefile
            on error err
                beep
                display dialog "Error: " & err & return & thefile
                --delay 1
            end try
        end if
    end repeat
    say "done."
end open
 
  • Gefällt mir
Reaktionen: Olivetti und lostreality
@Pill der Pfad ist der gleiche (/usr/local/bin/exiftool). Habe das Script, wie zuvor das von @Olivetti per copy'n'pase in den ScriptEditor kopiert und als App gespeichert.
Ich bekomme keine Fehlermeldung und es funktioniert alles so wie es soll! Selbst mit 30 Bildern läuft es problemlos durch.
WOW Danke euch beiden so sehr!

Nu würden wir noch gerne wissen woran es lag :D
[edit] Jetzt sehe ich es, er hat das exiftool gesucht und nicht gefunden.
 
@Pill
Völligen Dank für's eingreifen. :p

damit klärt sich's. ich habe noch exiftool v9.63, liegend in /usr/bin.
v10.07 package installiert, die alte version deaktiviert und ich muss auch den pfad angeben.
wieder was gelernt - wegen el capitan: exiftool changelog (siehe v9.99)
 
Zuletzt bearbeitet:
Zurück
Oben Unten