I have written an Automator QuickAction workflow
Image_MetaData.workflow.zip (50.9 KB)
that calls exiftool to list all the metadata in a file. The results of the call and then opened in a new TextEdit document. The shortcut is useful and has worked well but today I found a jpeg file that consistently returns a blank TextEdit document.
I have confirmed that the file does contain metadata and that the shell script works when run in the Terminal with the full file path.
Starting with the Terminal command that is working:
% exiftool -a -G1 -s /Volumes/Images_Disc_02_Master/Photo_Library_raw/2024/2024-11/2024-11-07-132933-OM570020.JPG
This returns the following to the Terminal:
[System] FileName : 2024-11-07-132933-OM570020.JPG
[System] Directory : /Volumes/Images_Disc_02_Master/Photo_Library_raw/2024/2024-11
[System] FileSize : 14 MB
[System] FileModifyDate : 2025:02:09 09:25:38+00:00
[System] FileAccessDate : 2025:02:09 10:21:17+00:00
[System] FileInodeChangeDate : 2025:02:09 09:54:45+00:00
[System] FilePermissions : -rw-r--r--
[File] FileType : JPEG
[File] FileTypeExtension : jpg
[File] MIMEType : image/jpeg
[File] ExifByteOrder : Little-endian (Intel, II)
[File] CurrentIPTCDigest : d8a8f055fcb61e817e93cc19b01b6d27
[File] ImageWidth : 5184
[File] ImageHeight : 3888
[File] EncodingProcess : Baseline DCT, Huffman coding
[File] BitsPerSample : 8
[File] ColorComponents : 3
[File] YCbCrSubSampling : YCbCr4:2:2 (2 1)
[IFD0] ImageDescription : Walking break in Grasmere November 2024. Solo walk (Karena was in bed with a sore throat) towards Elterwater. Met Youtuber and photographer Nigel Danson on the hill taking shots in the mist and low cloud.
[IFD0] Make : OM Digital Solutions
[IFD0] Model : OM-5
[IFD0] Orientation : Rotate 90 CW
[IFD0] XResolution : 350
[IFD0] YResolution : 350
[IFD0] ResolutionUnit : inches
[IFD0] Software : Version 1.1
[IFD0] ModifyDate : 2024:11:07 13:29:33
[IFD0] Artist : Simon Knight
[IFD0] YCbCrPositioning : Co-sited
[IFD0] Rating : 0
[IFD0] Copyright : © Simon Knight 2024
[ExifIFD] ExposureTime : 1/60
[ExifIFD] FNumber : 5.6
[ExifIFD] ExposureProgram : Aperture-priority AE
[ExifIFD] ISO : 2000
[ExifIFD] SensitivityType : Standard Output Sensitivity
[ExifIFD] ExifVersion : 0231
[ExifIFD] DateTimeOriginal : 2024:11:07 13:29:33
[ExifIFD] CreateDate : 2024:11:07 13:29:33
[ExifIFD] OffsetTime : +00:00
[ExifIFD] OffsetTimeOriginal : -00:00
[ExifIFD] OffsetTimeDigitized : +00:00
[ExifIFD] ComponentsConfiguration : Y, Cb, Cr, -
[ExifIFD] ExposureCompensation : -0.3
[ExifIFD] MaxApertureValue : 4.0
[ExifIFD] MeteringMode : Multi-segment
[ExifIFD] LightSource : Unknown
[ExifIFD] Flash : On, Did not fire
[ExifIFD] FocalLength : 12.0 mm
[ExifIFD] UserComment :
[ExifIFD] AmbientTemperature : -0 C
[ExifIFD] Pressure : 0
[ExifIFD] WaterDepth : -0
[ExifIFD] Acceleration : 0
[ExifIFD] FlashpixVersion : 0100
[ExifIFD] ColorSpace : sRGB
[ExifIFD] ExifImageWidth : 5184
[ExifIFD] ExifImageHeight : 3888
[ExifIFD] FileSource : Digital Camera
[ExifIFD] CustomRendered : Normal
[ExifIFD] ExposureMode : Manual
[ExifIFD] WhiteBalance : Auto
[ExifIFD] DigitalZoomRatio : 1
[ExifIFD] SceneCaptureType : Standard
[ExifIFD] GainControl : High gain up
[ExifIFD] Contrast : Normal
[ExifIFD] Saturation : Normal
[ExifIFD] Sharpness : Normal
[ExifIFD] LensInfo : 12-45mm f/4
[ExifIFD] LensModel : OM 12-45mm F4.0
[Olympus] SpecialMode : Normal, Sequence: 0, Panorama: (none)
[Olympus] CameraID : OM SYSTEM CAMERA
[Olympus] EquipmentVersion : 0100
[Olympus] CameraType2 : OM-5
[Olympus] SerialNumber : BJOA16846
[Olympus] InternalSerialNumber : 4233401001293000
[Olympus] FocalPlaneDiagonal : 21.6 mm
[Olympus] BodyFirmwareVersion : 1.100
[Olympus] LensType : Olympus M.Zuiko Digital ED 12-45mm F4.0 Pro
[Olympus] LensSerialNumber : 34CA47411
[Olympus] LensModel : OM 12-45mm F4.0
[Olympus] LensFirmwareVersion : 1.000
[Olympus] MaxApertureAtMinFocal : 4.0
[Olympus] MaxApertureAtMaxFocal : 4.0
[Olympus] MinFocalLength : 12
[Olympus] MaxFocalLength : 45
[Olympus] MaxAperture : 4.1
[Olympus] LensProperties : 0xc140
[Olympus] Extender : None
[Olympus] ExtenderSerialNumber :
[Olympus] ExtenderModel :
[Olympus] ExtenderFirmwareVersion : 0
[Olympus] ConversionLens :
[Olympus] FlashType : None
[Olympus] FlashModel : None
[Olympus] FlashFirmwareVersion : 0
[Olympus] FlashSerialNumber :
[Olympus] CameraSettingsVersion : 0100
[Olympus] PreviewImageValid : Yes
[Olympus] PreviewImageStart : 13488256
[Olympus] PreviewImageLength : 147869
[Olympus] ExposureMode : Aperture-priority AE
[Olympus] AELock : Off
[Olympus] MeteringMode : ESP
[Olympus] ExposureShift : 0
[Olympus] MacroMode : Off
[Olympus] FocusMode : MF; S-AF, MF, Imager AF
[Olympus] FocusProcess : AF Used; 64
[Olympus] AFSearch : Ready
[Olympus] AFAreas : (118,119)-(137,136)
[Olympus] AFPointSelected : (66%,63%) (66%,63%)
[Olympus] AFFineTune : Off
[Olympus] AFFineTuneAdj : 0 0 0
[Olympus] FocusBracketStepSize : 0
[Olympus] AISubjectTrackingMode : Off; Object Not Found
[Olympus] FlashMode : Fill-in
[Olympus] FlashExposureComp : 0
[Olympus] FlashRemoteControl : Off
[Olympus] FlashControlMode : Off; 0; 0; 0
[Olympus] FlashIntensity : n/a (x4)
[Olympus] ManualFlashStrength : n/a (x4)
[Olympus] WhiteBalance2 : Auto
[Olympus] WhiteBalanceTemperature : Auto
[Olympus] WhiteBalanceBracket : 0 0
[Olympus] CustomSaturation : 0 (min -5, max 5)
[Olympus] ModifiedSaturation : Off
[Olympus] ContrastSetting : 0 (min -5, max 5)
[Olympus] SharpnessSetting : 0 (min -5, max 5)
[Olympus] ColorSpace : sRGB
[Olympus] SceneMode : Standard
[Olympus] NoiseReduction : Auto
[Olympus] DistortionCorrection : Off
[Olympus] ShadingCompensation : Off
[Olympus] CompressionFactor : 2.7
[Olympus] Gradation : Normal; User-Selected
[Olympus] PictureMode : Natural; 2
[Olympus] PictureModeSaturation : 0 (min -2, max 2)
[Olympus] PictureModeContrast : 0 (min -2, max 2)
[Olympus] PictureModeSharpness : 0 (min -2, max 2)
[Olympus] PictureModeBWFilter : n/a
[Olympus] PictureModeTone : n/a
[Olympus] NoiseFilter : Standard
[Olympus] ArtFilter : Off; 0; 0; 0
[Olympus] PictureModeEffect : Standard
[Olympus] ToneLevel : Highlights; 0; -7; 7; Shadows; 0; -7; 7; Midtones; 0; -7; 7; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0
[Olympus] ArtFilterEffect : Off; 0; 0; Partial Color 0; No Effect; 0; No Color Filter; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0
[Olympus] ColorCreatorEffect : Color 0; 0; 29; Strength 0; -4; 3
[Olympus] MonochromeProfileSettings : No Filter; 0; 8; Strength 2; 0; 3
[Olympus] FilmGrainEffect : Off
[Olympus] ColorProfileSettings : Min -5; Max 5; Yellow 0; Orange 0; Orange-red 0; Red 0; Magenta 0; Violet 0; Blue 0; Blue-cyan 0; Cyan 0; Green-cyan 0; Green 0; Yellow-green 0
[Olympus] MonochromeVignetting : 0
[Olympus] MonochromeColor : (none)
[Olympus] DriveMode : Single Shot
[Olympus] PanoramaMode : Off
[Olympus] ImageStabilization : On, Mode 4
[Olympus] StackedImage : No
[Olympus] ManometerPressure : 0 kPa
[Olympus] ManometerReading : -999.9 m, -999.9 ft
[Olympus] ExtendedWBDetect : Off
[Olympus] RollAngle : 2.4
[Olympus] PitchAngle : -0.4
[Olympus] DateTimeUTC : 2024:11:07 13:29:33
[Olympus] RawDevVersion : 0100
[Olympus] RawDevExposureBiasValue : 0
[Olympus] RawDevWhiteBalanceValue : 0
[Olympus] RawDevWBFineAdjustment : 0
[Olympus] RawDevGrayPoint : 0 0 0
[Olympus] RawDevSaturationEmphasis : 0 0 0
[Olympus] RawDevMemoryColorEmphasis : 0
[Olympus] RawDevContrastValue : 0 0 0
[Olympus] RawDevSharpnessValue : 0 0 0
[Olympus] RawDevColorSpace : sRGB
[Olympus] RawDevEngine : High Speed
[Olympus] RawDevNoiseReduction : (none)
[Olympus] RawDevEditStatus : Original
[Olympus] RawDevSettings : (none)
[Olympus] ImageProcessingVersion : 0112
[Olympus] WB_RBLevels : 478 520 256 256
[Olympus] ColorMatrix : 380 -88 -36 -52 356 -48 2 -72 326
[Olympus] BlackLevel2 : 256 257 257 256
[Olympus] GainBase : 256
[Olympus] CropLeft : 12 0
[Olympus] CropTop : 12 0
[Olympus] CropWidth : 5184
[Olympus] CropHeight : 3888
[Olympus] SensorCalibration : 4095 290
[Olympus] NoiseReduction2 : (none)
[Olympus] DistortionCorrection2 : Off
[Olympus] ShadingCompensation2 : Off
[Olympus] MultipleExposureMode : Off; 1
[Olympus] AspectRatio : 4:3
[Olympus] AspectFrame : 0 0 5183 3887
[Olympus] FacesDetected : 0 0 0
[Olympus] FaceDetectArea : (Binary data 383 bytes, use -b option to extract)
[Olympus] MaxFaces : 8 8 0
[Olympus] FaceDetectFrameSize : 0 0 0 0 0 0
[Olympus] FaceDetectFrameCrop : 0 0 0 0 0 0 0 0 0 0 0 0
[Olympus] CameraTemperature : 1
[Olympus] KeystoneCompensation : Off
[Olympus] FocusInfoVersion : 0100
[Olympus] SceneDetect : 0
[Olympus] ZoomStepCount : 0
[Olympus] FocusStepCount : 5541
[Olympus] FocusStepInfinity : 5479
[Olympus] FocusStepNear : 6457
[Olympus] FocusDistance : 0.84 m
[Olympus] AFPoint : 0
[Olympus] AFPointDetails : No Subject Detection; Face Priority; AF on Half Press; No Eye-AF; No Face Detection; With MF; Release Priority; No Object found; S-AF
[Olympus] ExternalFlash : Off
[Olympus] ExternalFlashBounce : Bounce or Off
[Olympus] ExternalFlashZoom : 0
[Olympus] InternalFlash : Off
[Olympus] ManualFlash : Off
[Olympus] MacroLED : Off
[Olympus] SensorTemperature : 23 23 0 C
[Olympus] PreviewImage : (Binary data 147869 bytes, use -b option to extract)
[InteropIFD] InteropIndex : R98 - DCF basic file (sRGB)
[InteropIFD] InteropVersion : 0100
[GPS] GPSVersionID : 2.2.0.0
[GPS] GPSLatitudeRef : North
[GPS] GPSLatitude : 54 deg 26' 46.44"
[GPS] GPSLongitudeRef : West
[GPS] GPSLongitude : 3 deg 1' 38.76"
[GPS] GPSAltitudeRef : Above Sea Level
[GPS] GPSAltitude : 117 m
[GPS] GPSTimeStamp : 13:29:33
[GPS] GPSSpeedRef : mph
[GPS] GPSSpeed : 0
[GPS] GPSDateStamp : 2024:11:7?
[IFD1] Compression : JPEG (old-style)
[IFD1] XResolution : 72
[IFD1] YResolution : 72
[IFD1] ResolutionUnit : inches
[IFD1] ThumbnailOffset : 25184
[IFD1] ThumbnailLength : 7709
[IFD1] ThumbnailImage : (Binary data 7709 bytes, use -b option to extract)
[XMP-x] XMPToolkit : XMP Core 5.6.0
[XMP-exif] GPSSpeedRef : mph
[XMP-exif] GPSSpeed : 0
[XMP-exif] GPSDateTime : 2024:11:22 13:4294967325:33Z
[XMP-exif] GPSLatitude : 54 deg 26' 46.44" N
[XMP-exif] GPSLongitude : 3 deg 1' 38.76" W
[XMP-exif] GPSAltitudeRef : Above Sea Level
[XMP-exif] GPSAltitude : 117 m
[XMP-exif] DateTimeOriginal : 2024:11:07 13:29:33+00:00
[XMP-photoshop] Headline : Does this get written to Jpeg now I have ticked embed iptc?
[XMP-photoshop] TransmissionReference : OM570020.ORF
[XMP-photoshop] DateCreated : 2024:11:07 13:29:33+00:00
[XMP-xmpRights] Marked : True
[XMP-xmpRights] UsageTerms : All rights reserved
[XMP-xmp] CreateDate : 2024:11:07 13:29:33+00:00
[XMP-xmp] Rating : 0
[XMP-photomech] ColorClass : 0 (None)
[XMP-photomech] Tagged : No
[XMP-photomech] Prefs : Tagged:0, ColorClass:0, Rating:0, FrameNum:000020
[XMP-photomech] PMVersion : PM6
[XMP-aux] ImageNumber : 20
[XMP-plus_1_] ImageCreatorImageCreatorName : Simon Knight
[XMP-dc] Subject : Holiday, Lake District, Landscape, low visibilty
[XMP-dc] Description : Walking break in Grasmere November 2024. Solo walk (Karena was in bed with a sore throat) towards Elterwater. Met Youtuber and photographer Nigel Danson on the hill taking shots in the mist and low cloud.
[XMP-dc] Creator : Simon Knight
[XMP-dc] Rights : © Simon Knight 2024
[XMP-iptcCore] CreatorAddress : Anvic House,.Gunthorpe
[XMP-iptcCore] CreatorCity : DONCASTER
[XMP-iptcCore] CreatorPostalCode : DN9 1BQ
[XMP-iptcCore] CreatorCountry : U.K
[XMP-iptcCore] CreatorWorkEmail : smk@anvic.net
[Photoshop] XResolution : 300
[Photoshop] DisplayedUnitsX : inches
[Photoshop] YResolution : 300
[Photoshop] DisplayedUnitsY : inches
[Photoshop] CopyrightFlag : True
[IPTC] CodedCharacterSet : UTF8
[IPTC] ApplicationRecordVersion : 3
[IPTC] DateCreated : 2024:11:07
[IPTC] TimeCreated : 13:29:33+00:00
[IPTC] Keywords : Holiday, Lake District, Landscape, low visibilty
[IPTC] By-line : Simon Knight
[IPTC] Caption-Abstract : Walking break in Grasmere November 2024. Solo walk (Karena was in bed with a sore throat) towards Elterwater. Met Youtuber and photographer Nigel Danson on the hill taking shots in the mist and low cloud.
[IPTC] Headline : Does this get written to Jpeg now I have ticked embed iptc?
[IPTC] OriginalTransmissionReference : OM570020.ORF
[IPTC] CopyrightNotice : © Simon Knight 2024
[IPTC] Prefs : Tagged:0, ColorClass:0, Rating:0, FrameNum:000020
[Composite] Aperture : 5.6
[Composite] BlueBalance : 2.03125
[Composite] ImageSize : 5184x3888
[Composite] Megapixels : 20.2
[Composite] RedBalance : 1.867188
[Composite] ScaleFactor35efl : 2.0
[Composite] ShutterSpeed : 1/60
[Composite] SubSecCreateDate : 2024:11:07 13:29:33+00:00
[Composite] SubSecDateTimeOriginal : 2024:11:07 13:29:33-00:00
[Composite] SubSecModifyDate : 2024:11:07 13:29:33+00:00
[Composite] GPSAltitude : 117 m Above Sea Level
[Composite] GPSDateTime : 2024:11:7? 13:29:33Z
[Composite] GPSLatitude : 54 deg 26' 46.44" N
[Composite] GPSLongitude : 3 deg 1' 38.76" W
[Composite] DateTimeCreated : 2024:11:07 13:29:33+00:00
[Composite] ExtenderStatus : Not attached
[Composite] GPSLatitudeRef : North
[Composite] GPSLongitudeRef : West
[Composite] CircleOfConfusion : 0.015 mm
[Composite] DOF : 1.06 m (0.57 - 1.62 m)
[Composite] FOV : 72.9 deg (1.24 m)
[Composite] FocalLength35efl : 12.0 mm (35 mm equivalent: 24.0 mm)
[Composite] GPSPosition : 54 deg 26' 46.44" N, 3 deg 1' 38.76" W
[Composite] HyperfocalDistance : 1.71 m
[Composite] LensID : Olympus M.Zuiko Digital ED 12-45mm F4.0 Pro
[Composite] LightValue : 6.6
When the exiftool command is run in Automator it has to be modified to :
/usr/local/bin/exiftool -a -G1 -s "$@"
with the Run Shell Script action set the Pass input as arguments
The work flow is set to receive image files in Finder.app. The problem is most likely happening at with the passing to filepath to exiftool i.e. “$@” . I believe that this causes exiftool to loop through a list of file paths. Note I am only running the workflow on a single file.
If I change “$@” to “‘$@’” then a file not found error is reported; listing the filepath inside single quotes. This suggests that tha correct filepath is being passed and that any errors get reported.
With “‘$@’” reset to “$@” I tried placing echo before the exiftool command i.e.
this returns:
/usr/local/bin/exiftool -a -G1 -s /Volumes/Images_Disc_02_Master/Photo_Library_raw/2024/2024-11/2024-11-07-132933-OM570020.JPG
in TextEdit and if this command is copy and pasted into Terminal then run it works as expected. This jpeg path ending OM570020.JPG has siblings named OM570019.JPG, OM570021.JPG and so on and the workflow works as expected on these.
The other exiftool commands perform the following:
-a extracts all metadata from file
-G1 group names - organises the output into family groups
-s short output format
Any idea how I should debug this QuickAction workflow?
best wishes
S