Copy link to clipboard
Copied
Hello All,
Is there any way to uniquely identify each project item (e.g. by some Id) in premiere pro? We can't take project item name because premiere pro supports duplicate name.
Premiere Pro Version: 9.0.0
Extension Type: Panel
Thanks & Regards,
Meet Tank
nodeID refers to the projectItem's position within the project 'tree'; not guaranteed to be unique, forever.
We're making improvements around uniquely ID'ing project items, for our Next Major Releaseâ„¢.
Copy link to clipboard
Copied
Hi Meet,
what you want is the UUID of a file, and if remember correctly, this is available as the xmpMM:InstanceID in each projectItem's metadata.
See https://www.adobe.com/content/dam/Adobe/en/devnet/xmp/pdfs/XMPSpecificationPart1.pdf , page 36.
Best,
e.d.
Copy link to clipboard
Copied
Hi e.d.​
Thank you for your quick reply. It would be very handy if we could expose this id to projectItem object in app.project so that we don't need to read the xmp metadata xml.
Thanks,
Meet
Copy link to clipboard
Copied
Hi e.d.
Could you please provide code to read xmpMM:InstanceId? I can't find this node in xmp metadata xml:
<?xpacketbegin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmetaxmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c140 79.160302, 2017/03/02-16:59:38 ">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:premierePrivateProjectMetaData="http://ns.adobe.com/premierePrivateProjectMetaData/1.0/">
<premierePrivateProjectMetaData:Column.Intrinsic.Name>fb0f32c6-849f-478d-8b0c-24f73dd25e74.m4v</premierePrivateProjectMetaData:Column.Intrinsic.Name>
<premierePrivateProjectMetaData:Column.PropertyText.Label>BE.Prefs.LabelColors.1</premierePrivateProjectMetaData:Column.PropertyText.Label>
<premierePrivateProjectMetaData:Column.Intrinsic.MediaType>Movie</premierePrivateProjectMetaData:Column.Intrinsic.MediaType>
<premierePrivateProjectMetaData:Column.Intrinsic.MediaTimebase>25.00 fps</premierePrivateProjectMetaData:Column.Intrinsic.MediaTimebase>
<premierePrivateProjectMetaData:Column.Intrinsic.MediaStart>00:00:00:00</premierePrivateProjectMetaData:Column.Intrinsic.MediaStart>
<premierePrivateProjectMetaData:Column.Intrinsic.MediaEnd>00:00:06:06</premierePrivateProjectMetaData:Column.Intrinsic.MediaEnd>
<premierePrivateProjectMetaData:Column.Intrinsic.MediaDuration>00:00:06:07</premierePrivateProjectMetaData:Column.Intrinsic.MediaDuration>
<premierePrivateProjectMetaData:Column.Intrinsic.VideoInPoint rdf:parseType="Resource">
<rdf:value>00:00:00:00</rdf:value>
<premierePrivateProjectMetaData:min>0</premierePrivateProjectMetaData:min>
<premierePrivateProjectMetaData:max>1585059840000</premierePrivateProjectMetaData:max>
<premierePrivateProjectMetaData:offset>0</premierePrivateProjectMetaData:offset>
<premierePrivateProjectMetaData:time_display>101</premierePrivateProjectMetaData:time_display>
<premierePrivateProjectMetaData:frame_rate>10160640000</premierePrivateProjectMetaData:frame_rate>
</premierePrivateProjectMetaData:Column.Intrinsic.VideoInPoint>
<premierePrivateProjectMetaData:Column.Intrinsic.VideoOutPoint rdf:parseType="Resource">
<rdf:value>00:00:06:06</rdf:value>
<premierePrivateProjectMetaData:min>10160640000</premierePrivateProjectMetaData:min>
<premierePrivateProjectMetaData:max>1595220480000</premierePrivateProjectMetaData:max>
<premierePrivateProjectMetaData:offset>0</premierePrivateProjectMetaData:offset>
<premierePrivateProjectMetaData:time_display>101</premierePrivateProjectMetaData:time_display>
<premierePrivateProjectMetaData:frame_rate>10160640000</premierePrivateProjectMetaData:frame_rate>
</premierePrivateProjectMetaData:Column.Intrinsic.VideoOutPoint>
<premierePrivateProjectMetaData:Column.Intrinsic.VideoDuration>00:00:06:07</premierePrivateProjectMetaData:Column.Intrinsic.VideoDuration>
<premierePrivateProjectMetaData:Column.Intrinsic.AudioInPoint rdf:parseType="Resource">
<rdf:value>00:00:00:00000</rdf:value>
<premierePrivateProjectMetaData:min>0</premierePrivateProjectMetaData:min>
<premierePrivateProjectMetaData:max>1585059840000</premierePrivateProjectMetaData:max>
<premierePrivateProjectMetaData:offset>0</premierePrivateProjectMetaData:offset>
<premierePrivateProjectMetaData:time_display>101</premierePrivateProjectMetaData:time_display>
<premierePrivateProjectMetaData:frame_rate>10160640000</premierePrivateProjectMetaData:frame_rate>
</premierePrivateProjectMetaData:Column.Intrinsic.AudioInPoint>
<premierePrivateProjectMetaData:Column.Intrinsic.AudioOutPoint rdf:parseType="Resource">
<rdf:value>00:00:06:12347</rdf:value>
<premierePrivateProjectMetaData:min>10160640000</premierePrivateProjectMetaData:min>
<premierePrivateProjectMetaData:max>1595220480000</premierePrivateProjectMetaData:max>
<premierePrivateProjectMetaData:offset>0</premierePrivateProjectMetaData:offset>
<premierePrivateProjectMetaData:time_display>101</premierePrivateProjectMetaData:time_display>
<premierePrivateProjectMetaData:frame_rate>10160640000</premierePrivateProjectMetaData:frame_rate>
</premierePrivateProjectMetaData:Column.Intrinsic.AudioOutPoint>
<premierePrivateProjectMetaData:Column.Intrinsic.AudioDuration>00:00:06:12348</premierePrivateProjectMetaData:Column.Intrinsic.AudioDuration>
<premierePrivateProjectMetaData:Column.Intrinsic.VideoInfo>640 x 360 (1.0)</premierePrivateProjectMetaData:Column.Intrinsic.VideoInfo>
<premierePrivateProjectMetaData:Column.Intrinsic.AudioInfo>44100 Hz - Compressed - Stereo</premierePrivateProjectMetaData:Column.Intrinsic.AudioInfo>
<premierePrivateProjectMetaData:Column.Intrinsic.FilePath>D:\fb0f32c6-849f-478d-8b0c-24f73dd25e74.m4v</premierePrivateProjectMetaData:Column.Intrinsic.FilePath>
<premierePrivateProjectMetaData:Column.PropertyText.Status>Online</premierePrivateProjectMetaData:Column.PropertyText.Status>
<premierePrivateProjectMetaData:Column.PropertyBool.Good>False</premierePrivateProjectMetaData:Column.PropertyBool.Good>
<premierePrivateProjectMetaData:Column.PropertyBool.Hide>False</premierePrivateProjectMetaData:Column.PropertyBool.Hide>
<premierePrivateProjectMetaData:Column.PropertyBool.PropagatedHide>False</premierePrivateProjectMetaData:Column.PropertyBool.PropagatedHide>
<premierePrivateProjectMetaData:Column.Intrinsic.SoundTimeCode rdf:parseType="Resource">
<rdf:value>00:00:00:00</rdf:value>
<premierePrivateProjectMetaData:min>0</premierePrivateProjectMetaData:min>
<premierePrivateProjectMetaData:max>1585059840000</premierePrivateProjectMetaData:max>
<premierePrivateProjectMetaData:offset>0</premierePrivateProjectMetaData:offset>
<premierePrivateProjectMetaData:time_display>101</premierePrivateProjectMetaData:time_display>
<premierePrivateProjectMetaData:frame_rate>10160640000</premierePrivateProjectMetaData:frame_rate>
</premierePrivateProjectMetaData:Column.Intrinsic.SoundTimeCode>
<premierePrivateProjectMetaData:Column.PropertyText.SyncOffset>0</premierePrivateProjectMetaData:Column.PropertyText.SyncOffset>
<premierePrivateProjectMetaData:Column.PropertyText.Codec>H.264</premierePrivateProjectMetaData:Column.PropertyText.Codec>
<premierePrivateProjectMetaData:Column.PropertyText.FieldOrder>No Fields (Progressive Scan)</premierePrivateProjectMetaData:Column.PropertyText.FieldOrder>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
Copy link to clipboard
Copied
meett9325076​ Would the ProjectItem.nodeId help you out here? There's currently no documentation available for it but perhaps it's what you're looking for? Bruce Bullis​, any insight into what the nodeId property is for ProjectItems?
Also, is the metadata you posted what you get when you use the ProjectItem.getXMPMetadata() call? Or is it from something else?
Copy link to clipboard
Copied
No, the posted result is a return from getProjectMetadata(), not getXMPMetadata(), which would have been the right method call.
I think the result is different from the ProjectItem.nodeId value, and they'd have to make sure this is present in v9.x as well.
Copy link to clipboard
Copied
Here is the code to read "InstanceId" from xmp metadata:
var pProXmpMmURI = "http://ns.adobe.com/xap/1.0/mm/";
var xmpMetadata = projectItem.getXMPMetadata();
var xmp = new XMPMeta(xmpMetadata);
var fileId = xmp.getProperty(pProXmpMmURI, "InstanceID");
Thanks,
Meet
Copy link to clipboard
Copied
nodeID refers to the projectItem's position within the project 'tree'; not guaranteed to be unique, forever.
We're making improvements around uniquely ID'ing project items, for our Next Major Releaseâ„¢.