7 Replies Latest reply on Jul 3, 2017 4:18 AM by meett9325076

    Uniquely identify project item

    meett9325076 Level 1

      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

        • 1. Re: Uniquely identify project item
          e.d. Level 3

          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.

          2 people found this helpful
          • 2. Re: Uniquely identify project item
            meett9325076 Level 1

            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

            • 3. Re: Uniquely identify project item
              meett9325076 Level 1

              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"?>
              
              • 4. Re: Uniquely identify project item
                sberic Level 2

                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?

                • 5. Re: Uniquely identify project item
                  e.d. Level 3

                  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.

                  • 6. Re: Uniquely identify project item
                    Bruce Bullis Adobe Employee

                    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™.

                    3 people found this helpful
                    • 7. Re: Uniquely identify project item
                      meett9325076 Level 1

                      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