Script für Metadatenänderung

was bringt:
Code:
src=$(xattr -px com.apple.metadata:kMDItemWhereFroms imac_three_quarter_large.jpg | xxd -r -p | plutil -convert xml1 -o - - |sed -e 's/<[^>]*>//g'|xargs); echo "$src"
 
Welche kmDMItem suchst du? oder soll ich alle posten?

BTW: wo kommt den die Datei bei "... | grep http" hin? Wenn ich die anstatt "Test.jpg" reinsetzte gibt er mir nichts aus:

Code:
MacBook-Pro:~ Toby$ exiftool /Users/Toby/Desktop/imac_three_quarter_large_Kopie.jpg | grep http

MacBook-Pro:~ Toby$ exiftool /Users/Toby/Desktop/imac_three_quarter_large_Kopie.jpg | grep http

MacBook-Pro:~ Toby$
den Unterstrich musste ich zwischendurch einfügen de sind file not found ausgegeben hatte:
Code:
MacBook-Pro:~ Toby$ exiftool /Users/Toby/Desktop/imac_three_quarter_large Kopie.jpg | grep http

File not found: /Users/Toby/Desktop/imac_three_quarter_large

File not found: Kopie.jpg
 
Hi Olivetti.

Entschuldigung, wenn ich mich mal hier ein wenig OT dranhänge, aber wo es gerade um Metadaten und extended attributes geht, wollte ich kein Extrathema für diese kurze Frage aufmachen:

Ich suche einen einfachen robusten Weg, Text-Tags in Dateien unterschiedlicher Art zu speichern, so daß sie beim Kopieren der Dateien auf einen anderen Mac nicht verloren gehen.
Bis jetzt habe ich auf meinem Mac immer einen Finderkommentar geschrieben und den auf dem entfernten Mac ausgelesen mit
Code:
xattr -p com.apple.metadata:kMDItemFinderComment
Gibt es da einen eleganteren oder einfacheren Weg (Text-Tag muß ja nicht zwangsläufig über Finderkommentar transportiert werden)?
 
entweder: exiftool "file name" | grep http
oder: exiftool file\ name | grep http

das ist ja der witz - wenn nix ausgegeben wird, is nix drin. :p
 
@TGY
mir ist da kein anderer weg, als über die extended attributes bekannt. die werden am weitesten mitgenommen und findercomment ist halt überall ohne aufwand lesbar.
in zips bleiben sie enthalten, aber in diversen clouds nicht (hier zu sehen bei offenem dropbox transport).
 
Ok, danke. Ich nehme nicht an, daß xattr selbst eine Option bietet, die nur den ASCII-Teil ausgibt ohne den hex-Kram?
 
ok, dann bitte:
mdls /Users/Toby/Desktop/imac_three_quarter_large_Kopie.jpg
und post #21.
---
geh im terminal einfach "cd Desktop", dann musst du den pfad nicht immer angeben.
hilfreich wäre auch eine testdatei mit namen test1.jpg, die nächste dann test2.jpg usw.
 
@TGY
nein, aber schau einfach ins script, da wird das gehexte umgewandelt und noch die url extrahiert. du brauchst halt vermutlich bis zum plutil. wenn du einzelne pipes von hinten weglässt, siehst du, was bis dahin rauskommt.
 
Zuletzt bearbeitet:
Ich baue mal eine neue Testreihe auf und gehe dann im Terminal in das Verzeichnis.
Schade das ich so mal gar nichts davon verstehe, dann könnte ich dir besser weiterhelfen ;)

[edit] bevor ich die Testreihe starte, muss ich beim abspeichern des Scripts als Programm etwas bedenken (Häkchen in den Optionen setzen)?

Bildschirmfoto 2015-12-12 um 20.11.42.png
 
das kriegen wir schon hin und eilig wird's doch nicht sein.
mach am desktop einfach ein verzeichnis "a", wirf die testdateien da rein und im terminal gehst du: "cd ~/Desktop/a", mit "ls" siehst du dann die dateien.
 
Nö, ist nicht eilig. Würde nur gerne mehr davon verstehen :D
 
poste dann von der testdatei (hier test1.jpg):
Code:
mdls -name kMDItemWhereFroms test1.jpg
src=$(xattr -px com.apple.metadata:kMDItemWhereFroms test1.jpg | xxd -r -p | plutil -convert xml1 -o - - |sed -e 's/<[^>]*>//g'|xargs); echo "$src"
 
zu #30: nein, alles so lassen und als programm speichern.
das script bleibt eh erstmal aussen vor.
wir machen im terminal weiter, bis zum erfolg und das wird dann erst ins script eingebaut.
ich hab halt kein photoshop/id - so müssen wir das halt im team erarbeiten. :p
 
So mal ein paar Tests gemacht und merkwürdige Dinge entdeckt.
Das mit "exiftool ... | grep http" gibt bei mir nichts raus
Code:
MacBook-Pro:a Toby$ exiftool Test_org.jpg | grep http

MacBook-Pro:a Toby$ exiftool Test_org.jpg | grep http

mdls vom Original ist
Code:
MacBook-Pro:a Toby$ mdls /Users/Toby/Desktop/Meta/a/Test_org.jpg

_kMDItemOwnerUserID            = 501

kMDItemBitsPerSample           = 32

kMDItemColorSpace              = "RGB"

kMDItemContentCreationDate     = 2015-12-12 20:44:40 +0000

kMDItemContentModificationDate = 2015-12-12 20:44:40 +0000

kMDItemContentType             = "public.jpeg"

kMDItemContentTypeTree         = (

    "public.jpeg",

    "public.image",

    "public.data",

    "public.item",

    "public.content"

)

kMDItemDateAdded               = 2015-12-12 20:45:25 +0000

kMDItemDisplayName             = "Test_org.jpg"

kMDItemDownloadedDate          = (

    "2015-12-12 20:44:40 +0000"

)

kMDItemFSContentChangeDate     = 2015-12-12 20:44:40 +0000

kMDItemFSCreationDate          = 2015-12-12 20:44:40 +0000

kMDItemFSCreatorCode           = ""

kMDItemFSFinderFlags           = 0

kMDItemFSHasCustomIcon         = (null)

kMDItemFSInvisible             = 0

kMDItemFSIsExtensionHidden     = 0

kMDItemFSIsStationery          = (null)

kMDItemFSLabel                 = 0

kMDItemFSName                  = "Test_org.jpg"

kMDItemFSNodeCount             = (null)

kMDItemFSOwnerGroupID          = 20

kMDItemFSOwnerUserID           = 501

kMDItemFSSize                  = 170081

kMDItemFSTypeCode              = ""

kMDItemHasAlphaChannel         = 0

kMDItemKind                    = "JPEG-Bild"

kMDItemLogicalSize             = 170081

kMDItemOrientation             = 0

kMDItemPhysicalSize            = 172032

kMDItemPixelCount              = 3333000

kMDItemPixelHeight             = 1515

kMDItemPixelWidth              = 2200

kMDItemResolutionHeightDPI     = 300

kMDItemResolutionWidthDPI      = 300

kMDItemWhereFroms              = (

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

)

MacBook-Pro:a Toby$
Nadem das Script (mit Error) gelaufen ist, habe ich das in Phoshop geöffnet um zu schauen ob etwas in den Dateiinfos steht, danach abgespeichert und nochmals das Script getestet.
Code:
MacBook-Pro:a Toby$ mdls /Users/Toby/Desktop/Meta/a/Test_mod1.jpg

_kMDItemOwnerUserID            = 501

kMDItemBitsPerSample           = 32

kMDItemColorSpace              = "RGB"

kMDItemContentCreationDate     = 2015-12-12 20:44:40 +0000

kMDItemContentModificationDate = 2015-12-12 20:53:35 +0000

kMDItemContentType             = "public.jpeg"

kMDItemContentTypeTree         = (

    "public.jpeg",

    "public.image",

    "public.data",

    "public.item",

    "public.content"

)

kMDItemCreator                 = "Adobe Photoshop CS5.1 Macintosh"

kMDItemDateAdded               = 2015-12-12 20:53:35 +0000

kMDItemDisplayName             = "Test_mod1.jpg"

kMDItemDownloadedDate          = (

    "2015-12-12 20:44:40 +0000"

)

kMDItemEXIFVersion             = "2.2.1"

kMDItemFSContentChangeDate     = 2015-12-12 20:53:35 +0000

kMDItemFSCreationDate          = 2015-12-12 20:44:40 +0000

kMDItemFSCreatorCode           = ""

kMDItemFSFinderFlags           = 0

kMDItemFSHasCustomIcon         = (null)

kMDItemFSInvisible             = 0

kMDItemFSIsExtensionHidden     = 0

kMDItemFSIsStationery          = (null)

kMDItemFSLabel                 = 0

kMDItemFSName                  = "Test_mod1.jpg"

kMDItemFSNodeCount             = (null)

kMDItemFSOwnerGroupID          = 20

kMDItemFSOwnerUserID           = 501

kMDItemFSSize                  = 256175

kMDItemFSTypeCode              = ""

kMDItemHasAlphaChannel         = 0

kMDItemKind                    = "JPEG-Bild"

kMDItemLogicalSize             = 256175

kMDItemOrientation             = 0

kMDItemPhysicalSize            = 258048

kMDItemPixelCount              = 3333000

kMDItemPixelHeight             = 1515

kMDItemPixelWidth              = 2200

kMDItemResolutionHeightDPI     = 300

kMDItemResolutionWidthDPI      = 300

kMDItemWhereFroms              = (

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

)

MacBook-Pro:a Toby$

Und nachdem ich mit
Code:
MacBook-Pro:a Toby$ exiftool -Creator='DOWNLOAD-URL' /Users/Toby/Desktop/Meta/a/Test_mod2.jpg

    1 image files updated
Per Terminal eingegriffen habe
Code:
MacBook-Pro:a Toby$ mdls /Users/Toby/Desktop/Meta/a/Test_mod2.jpg

_kMDItemOwnerUserID            = 501

kMDItemAuthors                 = (

    "DOWNLOAD-URL"

)

kMDItemBitsPerSample           = 32

kMDItemColorSpace              = "RGB"

kMDItemContentCreationDate     = 2015-12-12 20:57:01 +0000

kMDItemContentModificationDate = 2015-12-12 20:57:01 +0000

kMDItemContentType             = "public.jpeg"

kMDItemContentTypeTree         = (

    "public.jpeg",

    "public.image",

    "public.data",

    "public.item",

    "public.content"

)

kMDItemDateAdded               = 2015-12-12 20:57:01 +0000

kMDItemDisplayName             = "Test_mod2.jpg"

kMDItemFSContentChangeDate     = 2015-12-12 20:57:01 +0000

kMDItemFSCreationDate          = 2015-12-12 20:57:01 +0000

kMDItemFSCreatorCode           = ""

kMDItemFSFinderFlags           = 0

kMDItemFSHasCustomIcon         = (null)

kMDItemFSInvisible             = 0

kMDItemFSIsExtensionHidden     = 0

kMDItemFSIsStationery          = (null)

kMDItemFSLabel                 = 0

kMDItemFSName                  = "Test_mod2.jpg"

kMDItemFSNodeCount             = (null)

kMDItemFSOwnerGroupID          = 20

kMDItemFSOwnerUserID           = 501

kMDItemFSSize                  = 172961

kMDItemFSTypeCode              = ""

kMDItemHasAlphaChannel         = 0

kMDItemKind                    = "JPEG-Bild"

kMDItemLogicalSize             = 172961

kMDItemOrientation             = 0

kMDItemPhysicalSize            = 176128

kMDItemPixelCount              = 3333000

kMDItemPixelHeight             = 1515

kMDItemPixelWidth              = 2200

kMDItemResolutionHeightDPI     = 300

kMDItemResolutionWidthDPI      = 300
Interessanterweise schreibt er wie gewünscht den Creator rein (der verarbeitet werden kann), löscht aber das den kMDItemWhereFrom

Magst du die Exif Listen drei Dateien auch noch?
 
Zuletzt bearbeitet:
Und hier noch wie das ganze in ID rauskommt, es ist gut zu sehen das der Eintrag "DOWNLOAD-URL" bei "Test_mod2.jpg" richtig ausgegeben wird.

Bei der mdls sieht man auch das der Eintrag kMDItemAuthors inklusive den merkwürdigen Klammern und Umbrüchen geschieht (wie bei einer "mdls kMDItemWhereFroms" abfrage, scheinen wohl mit reinzuhören?

Bildschirmfoto 2015-12-12 um 22.25.56.png
 
bitte #33 machen. (nenn die test_org.jpg bitte test1.jpg, dann muss ich nicht immer mitschauen, ob das jetzt die richtige ist und wegen copy/paste)
wenn das script einen fehler wirft, dann schreibt es sicher auch nix in die datei.
das lesen (und konvertieren) schlägt wohl fehl.
---
"exiftool ... grep http" gibt dir erst was sinnvolles aus, wenn das script auch was geschrieben hat. das kommt später.
 
Hab ich doch glatt übersehen, deshalb hatte ich ja noch die Test_mod3.jpg

Code:
MacBook-Pro:a Toby$ mdls -name kMDItemWhereFroms /Users/Toby/Desktop/Meta/a/Test_mod3.jpg

kMDItemWhereFroms = (

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

)


MacBook-Pro:a Toby$ src=$(xattr -px com.apple.metadata:kMDItemWhereFroms Test_mod3.jpg | 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

Sorry, da fehlte noch die WhereFroms Abfrage
Code:
MacBook-Pro:a Toby$ mdls Test_mod3.jpg

_kMDItemOwnerUserID            = 501

kMDItemBitsPerSample           = 32

kMDItemColorSpace              = "RGB"

kMDItemContentCreationDate     = 2015-12-12 20:44:40 +0000

kMDItemContentModificationDate = 2015-12-12 20:44:40 +0000

kMDItemContentType             = "public.jpeg"

kMDItemContentTypeTree         = (

    "public.jpeg",

    "public.image",

    "public.data",

    "public.item",

    "public.content"

)

kMDItemDateAdded               = 2015-12-12 20:45:53 +0000

kMDItemDisplayName             = "Test_mod3.jpg"

kMDItemDownloadedDate          = (

    "2015-12-12 20:44:40 +0000"

)

kMDItemFSContentChangeDate     = 2015-12-12 20:44:40 +0000

kMDItemFSCreationDate          = 2015-12-12 20:44:40 +0000

kMDItemFSCreatorCode           = ""

kMDItemFSFinderFlags           = 0

kMDItemFSHasCustomIcon         = (null)

kMDItemFSInvisible             = 0

kMDItemFSIsExtensionHidden     = 0

kMDItemFSIsStationery          = (null)

kMDItemFSLabel                 = 0

kMDItemFSName                  = "Test_mod3.jpg"

kMDItemFSNodeCount             = (null)

kMDItemFSOwnerGroupID          = 20

kMDItemFSOwnerUserID           = 501

kMDItemFSSize                  = 170081

kMDItemFSTypeCode              = ""

kMDItemHasAlphaChannel         = 0

kMDItemKind                    = "JPEG-Bild"

kMDItemLogicalSize             = 170081

kMDItemOrientation             = 0

kMDItemPhysicalSize            = 172032

kMDItemPixelCount              = 3333000

kMDItemPixelHeight             = 1515

kMDItemPixelWidth              = 2200

kMDItemResolutionHeightDPI     = 300

kMDItemResolutionWidthDPI      = 300

kMDItemWhereFroms              = (

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

)

MacBook-Pro:a Toby$
 
das sieht völlig korrekt aus. wenn du die Test_mod3.jpg jetzt auf das script wirfst, kommt dann auch ein fehler?
 
Zurück
Oben Unten