# Add a unique nodeId identifier to VideoClipTrackItem and ProjectItem

**URL:** <https://forums.creativeclouddeveloper.com/t/add-a-unique-nodeid-identifier-to-videocliptrackitem-and-projectitem/11344>\
**Category:** Premiere Pro\
**Tags:** uxp\
**Created:** [August 20, 2025, 4:58pm UTC](https://forums.creativeclouddeveloper.com/t/add-a-unique-nodeid-identifier-to-videocliptrackitem-and-projectitem/11344 "2025-08-20T16:58:02Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![kernelKun](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/kernelkun/32/4691_2.png) [@kernelKun](https://forums.creativeclouddeveloper.com/u/kernelKun)\
**Post date:** [August 20, 2025, 4:58pm UTC](https://forums.creativeclouddeveloper.com/t/add-a-unique-nodeid-identifier-to-videocliptrackitem-and-projectitem/11344/1 "2025-08-20T16:58:02Z")

</div>

The current practice of using the `name` property to filter and locate items in the timeline (`VideoClipTrackItem`) and project panel (`ProjectItem`) is fundamentally unreliable. This approach suffers from critical flaws:

1. **Non-Uniqueness:** It is common for users to have multiple items with the exact same name (e.g., multiple `shot_v1` clips, several `bgm` audio tracks, or duplicated assets).
2. **Mutability:** Users can freely rename items at any time, causing name-based lookup logic to break unexpectedly and introducing bugs that are difficult to trace.
3. **Fragility:** This makes automation scripts and plugins brittle. Any change to an item’s name by the user can disrupt their functionality.

Relying on `name` as a unique identifier is an anti-pattern that significantly reduces the robustness and reliability of code built on top of the API.

```ts
// CURRENT: Finding an item by name (Unreliable)
let fragileItem = project.findItemByName("MyClipName");
if (fragileItem) {
    // If another item named "MyClipName" exists, this logic fails.
    doSomething(fragileItem);
}

```

---

<div class="post-metadata">

**Author:** ![Sir\_Ivan](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/sir_ivan/32/4379_2.png) [@Sir\_Ivan](https://forums.creativeclouddeveloper.com/u/Sir_Ivan)\
**Post date:** [August 21, 2025, 6:47am UTC](https://forums.creativeclouddeveloper.com/t/add-a-unique-nodeid-identifier-to-videocliptrackitem-and-projectitem/11344/2 "2025-08-21T06:47:19Z")

</div>

related: [Is there a way to get the ID of a clip? : PremierePro](https://forums.creativeclouddeveloper.com/t/is-there-a-way-to-get-the-id-of-a-clip-premierepro/11217)

---

<div class="post-metadata">

**Author:** ![bbb\_999](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/bbb_999/32/4247_2.png) [@bbb\_999](https://forums.creativeclouddeveloper.com/u/bbb_999)\
**Post date:** [August 28, 2025, 7:33pm UTC](https://forums.creativeclouddeveloper.com/t/add-a-unique-nodeid-identifier-to-videocliptrackitem-and-projectitem/11344/3 "2025-08-28T19:33:23Z")

</div>

As mentioned elsewhere (I think there are now 4 different topics requesting the same thing), IDs will be available in the next SDK pre-release.

---

<div class="post-metadata">

**Author:** ![kernelKun](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/kernelkun/32/4691_2.png) [@kernelKun](https://forums.creativeclouddeveloper.com/u/kernelKun)\
**Post date:** [August 30, 2025, 3:07am UTC](https://forums.creativeclouddeveloper.com/t/add-a-unique-nodeid-identifier-to-videocliptrackitem-and-projectitem/11344/4 "2025-08-30T03:07:20Z")

</div>

Regarding your technical support, I just encountered this issue: I cannot set entry and exit points for the sequence, and AME must be installed to export audio

> [@Cannot set entry and exit points for sequences, and AME must be installed to export audio](https://forums.creativeclouddeveloper.com/t/cannot-set-entry-and-exit-points-for-sequences-and-ame-must-be-installed-to-export-audio/11372):
>
> export async function setInOutPoint(project: Project) { if (!project) { log(`No project found.`, "red"); return; } const inPoint = ppro.TickTime.createWithSeconds(2); const outPoint = ppro.TickTime.createWithSeconds(4); const clipProjectItem = await getClipProjectItem(project); let success = false; try { project.lockedAccess(() =\> { success = project.executeTransaction((compoundAction) =\> { let action = clipProjectItem.createSetInOutPointsAction( …
