The functions can be used for Adobe automation. This will either grab the XMP data directly or utilize ExifTool to grab it. The Data is stored in a hash table.
$AdobeMetadata = Get-AdobeMetadata -AdobeFile $AdobeFile -ExifTool $ExifTool
After running the function any parameter can be read from the $AdobeMetadata variable:
- For a category: $AdobeMetadata['Basic']
- A specific value: $AdobeMetadata['Basic']['CreatorTool']
Two options are available
- To output the XMP data: OutputXMP
$AdobeMetadata = Get-AdobeMetadata -AdobeFile $AdobeFile -ExifTool $ExifTool -OutputXMP - To output a formatted text file: OutputTXT
$AdobeMetadata = Get-AdobeMetadata -AdobeFile $AdobeFile -ExifTool $ExifTool -OutputTXT
They can be used together. The output will be the same location as the input with _metadata added to the filename.
This will list the collected Metadata and can be used to save the metadata to a text file. List-AdobeMetadata $AdobeMetadata
Two options are available
- To silence the log output: Quiet
List-AdobeMetadata -Quiet - To capture the formatted metadata Output
$FormattedMetadata = List-AdobeMetadata $AdobeMetadata -Output
I've included two testfiles.
- xmp_photoshop.xml this is all the properties found in Photoshop File>File Info....
- xmp_cases.xml this is all different XMP structures that i came across. There are most probably more but i don't know.
- Adobe Premiere (*.prproj) does not have XMP data stored. 'prproj' files are *.zip files.
- After Effects (*.aep) has XMP info stored in the Binary. ExifTool fails to grab it for some reason. Trimming it out of the Binary does not always work.
- Adobe InDesign (*.idml) is also a *.zip file. The XMP data is directly opened from within the file.
- XMP/XML files can be read directly and then parsed. If -OutputXMP is used it will be ignored to avoid overwriting the input.
You'll need ExifTool by Phil Harvey to read out the raw XMP Metadata.
v1.0 (initial release)