Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Retrieving XMP metadata from After Effects Comp

Explorer ,
Mar 01, 2018 Mar 01, 2018

Hi,

I've successfully retrieved XMP metadata from a custom Project schema. Like this:

var proj = app.project;

var customMetadataSet = "Starz";

var customMetadataField = "Episode";

if(ExternalObject.AdobeXMPScript == undefined) {

    ExternalObject.AdobeXMPScript = new ExternalObject('lib:AdobeXMPScript');

}

var metaData = new XMPMeta(proj.xmpPacket);

var schemaNS = XMPMeta.getNamespaceURI(customMetadataSet);

if(schemaNS == "" || schemaNS == undefined) {

    alert("no custom metadata named: " + customMetadataSet);

} else {

    var metaValue = metaData.getProperty(schemaNS, customMetadataField);

    if(!metaValue) {

        alert("no custom field named: " + customMetadataField + " In set: " + customMetadataSet);

    } else {

        alert(customMetadataField+ ": " + metaValue.value);

    }

}

Screen Shot 2018-03-01 at 4.29.55 PM.png

But now I have 2 questions.

  1. How do I get Project XMP metadata from Dublin Core or Basic set?
  2. How do I get XMP metadata from a selected Comp and the Dynamic Media set?

Thanks for any insight.

Kelly Anderson

Starz - A Lionsgate Company

TOPICS
Scripting
594
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Mar 01, 2018 Mar 01, 2018
LATEST

Here is a sample script that can retrieve dc:fomat data. It may help you.

XMPBasic = {

  ns : "http://purl.org/dc/elements/1.1/",

  prefix : "dc",

  read : function(){

  if(xmpLib==undefined) var xmpLib = new ExternalObject('lib:AdobeXMPScript');

  var tgt = File.openDialog("Select source file", undefined, false);

  var xmpFile = new XMPFile(tgt.fsName, XMPConst.UNKNOWN, XMPConst.OPEN_FOR_READ);

  var xmpPackets = xmpFile.getXMP();

  var xmp = new XMPMeta(xmpPackets.serialize());

  alert(xmp.getProperty(this.ns, "format").toString());

  },

  write : function(f, val1, val2){ //f:fileObject, val1:String, val2:String

  if(xmpLib==undefined) var xmpLib = new ExternalObject('lib:AdobeXMPScript');

  var xmpFile = new XMPFile(f.fsName, XMPConst.UNKNOWN, XMPConst.OPEN_FOR_UPDATE);

  var xmp = xmpFile.getXMP();

  var mt = new XMPMeta(xmp.serialize());

  XMPMeta.registerNamespace(this.ns, this.prefix);

  mt.setProperty(this.ns, "value1", val1);

  mt.setProperty(this.ns, "value2", val2);

  if (xmpFile.canPutXMP(xmp)) xmpFile.putXMP(mt);

  xmpFile.closeFile(XMPConst.CLOSE_UPDATE_SAFELY);

  }

  }

//XMPBasic.write(File.openDialog(), "1", "2");

XMPBasic.read();

NS:

Dublincore "http://purl.org/dc/elements/1.1/"

Dynamic Media  "http://ns.adobe.com/xmp/1.0/DynamicMedia/"

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines