PROD
IO
Node-Detail
Job Execute ExtendScript In Premiere Action V2
helmut4_backup_l-helmut1.adin.mdr.de_2026-10-19 07_52_22 · ESP - Export AAF TNB
Node-Informationen
- Stream
- ESP - Export AAF TNB
- Klasse
- nodes.actions.helmut.job.JobPremiereExecuteExtendScriptActionV2
- UUID
- 9178ebd3-f5be-417a-8d32-bc2c89f9ff31
- Operator-ID
- 103
- Event
- EXPORT
Properties
{
"extendScript": "// Funktion zum Duplizieren einer Sequenz\nfunction duplicateSequence(sequence) {\n var newSequenceName = sequence.name + \"_copy\";\n var newSequence = sequence.clone();\n newSequence.name = newSequenceName;\n return newSequence;\n}\n\n// Funktion zum Trennen von Videoclips von Audioclips und Entfernen der Videoclips\nfunction separateAndRemoveVideoClips(sequence) {\n for (var trackIndex = 0; trackIndex < sequence.videoTracks.numTracks; trackIndex++) {\n var track = sequence.videoTracks[trackIndex];\n \n for (var clipIndex = track.clips.numItems - 1; clipIndex >= 0; clipIndex--) {\n var clip = track.clips[clipIndex];\n\n if (clip.type === 1) {\n var linkedClips = clip.getLinkedItems();\n if (linkedClips === null){\n clip.remove(0, 0);\n } else {\n // Überprüfen, ob es verknüpfte Audioclips gibt und trennen\n if (linkedClips.length > 0) {\n for (var linkedIndex = 0; linkedIndex < linkedClips.length; linkedIndex++) {\n var linkedClip = linkedClips[linkedIndex];\n if (linkedClip.type === 2) {\n linkedClip.unlink();\n }\n }\n }\n clip.remove(0, 0);\n }\n }\n }\n }\n app.project.save();\n}\n\n// Hauptfunktion\nfunction main(aaf_filename) {\n var project = app.project;\n var activeSequence = project.activeSequence;\n\n if (!activeSequence) {\n alert(\"Keine aktive Sequenz gefunden.\");\n return;\n }\n\n // Dupliziere die aktive Sequenz\n var nSequence = duplicateSequence(activeSequence);\n if (!nSequence) {\n alert(\"Fehler beim Duplizieren der Sequenz.\");\n return;\n }\n\n var newSequence = project.activeSequence;\n\n // Trenne und entferne Videoclips in der neuen duplizierten Sequenz\n separateAndRemoveVideoClips(newSequence);\n\n // Export\n\t// var fullOutPath = absPath + finalseqname + '.aaf';\n var fullOutPath = aaf_filename;\n var aaf_result = app.project.exportAAF(app.project.activeSequence, fullOutPath , 0, 1, 48000, 24, 1, 0, 1, 100,'',1,1,0);\n app.project.deleteSequence(newSequence);\n return aaf_result;\n}\n\n// Skript ausführen\nvar aaf_filename = '{stream.variable.aaf_filename_final}';\nvar result = main(aaf_filename);\nresult;",
"nodeUUID": "9178ebd3-f5be-417a-8d32-bc2c89f9ff31",
"failedNodeUUID": "76be5ad4-fcef-4cb4-ac8b-aa924c079632",
"successNodeUUID": "bd804c1c-5f42-4a4f-ab04-af747faef030"
}Skript
Original: 72 Zeilen · 2423 Zeichen
Formatiert: 72 Zeilen
Formatierung ergänzt Einrückungen und Zeilenumbrüche. Ursprüngliche Variablennamen und Kommentare lassen sich aus minifiziertem Code nicht wiederherstellen. ExtendScript-Direktiven und E4X werden bei der Formatierung berücksichtigt.
Original
// Funktion zum Duplizieren einer Sequenz
function duplicateSequence(sequence) {
var newSequenceName = sequence.name + "_copy";
var newSequence = sequence.clone();
newSequence.name = newSequenceName;
return newSequence;
}
// Funktion zum Trennen von Videoclips von Audioclips und Entfernen der Videoclips
function separateAndRemoveVideoClips(sequence) {
for (var trackIndex = 0; trackIndex < sequence.videoTracks.numTracks; trackIndex++) {
var track = sequence.videoTracks[trackIndex];
for (var clipIndex = track.clips.numItems - 1; clipIndex >= 0; clipIndex--) {
var clip = track.clips[clipIndex];
if (clip.type === 1) {
var linkedClips = clip.getLinkedItems();
if (linkedClips === null){
clip.remove(0, 0);
} else {
// Überprüfen, ob es verknüpfte Audioclips gibt und trennen
if (linkedClips.length > 0) {
for (var linkedIndex = 0; linkedIndex < linkedClips.length; linkedIndex++) {
var linkedClip = linkedClips[linkedIndex];
if (linkedClip.type === 2) {
linkedClip.unlink();
}
}
}
clip.remove(0, 0);
}
}
}
}
app.project.save();
}
// Hauptfunktion
function main(aaf_filename) {
var project = app.project;
var activeSequence = project.activeSequence;
if (!activeSequence) {
alert("Keine aktive Sequenz gefunden.");
return;
}
// Dupliziere die aktive Sequenz
var nSequence = duplicateSequence(activeSequence);
if (!nSequence) {
alert("Fehler beim Duplizieren der Sequenz.");
return;
}
var newSequence = project.activeSequence;
// Trenne und entferne Videoclips in der neuen duplizierten Sequenz
separateAndRemoveVideoClips(newSequence);
// Export
// var fullOutPath = absPath + finalseqname + '.aaf';
var fullOutPath = aaf_filename;
var aaf_result = app.project.exportAAF(app.project.activeSequence, fullOutPath , 0, 1, 48000, 24, 1, 0, 1, 100,'',1,1,0);
app.project.deleteSequence(newSequence);
return aaf_result;
}
// Skript ausführen
var aaf_filename = '{stream.variable.aaf_filename_final}';
var result = main(aaf_filename);
result;
Formatiert
// Funktion zum Duplizieren einer Sequenz
function duplicateSequence(sequence) {
var newSequenceName = sequence.name + "_copy";
var newSequence = sequence.clone();
newSequence.name = newSequenceName;
return newSequence;
}
// Funktion zum Trennen von Videoclips von Audioclips und Entfernen der Videoclips
function separateAndRemoveVideoClips(sequence) {
for (var trackIndex = 0; trackIndex < sequence.videoTracks.numTracks; trackIndex++) {
var track = sequence.videoTracks[trackIndex];
for (var clipIndex = track.clips.numItems - 1; clipIndex >= 0; clipIndex--) {
var clip = track.clips[clipIndex];
if (clip.type === 1) {
var linkedClips = clip.getLinkedItems();
if (linkedClips === null) {
clip.remove(0, 0);
} else {
// Überprüfen, ob es verknüpfte Audioclips gibt und trennen
if (linkedClips.length > 0) {
for (var linkedIndex = 0; linkedIndex < linkedClips.length; linkedIndex++) {
var linkedClip = linkedClips[linkedIndex];
if (linkedClip.type === 2) {
linkedClip.unlink();
}
}
}
clip.remove(0, 0);
}
}
}
}
app.project.save();
}
// Hauptfunktion
function main(aaf_filename) {
var project = app.project;
var activeSequence = project.activeSequence;
if (!activeSequence) {
alert("Keine aktive Sequenz gefunden.");
return;
}
// Dupliziere die aktive Sequenz
var nSequence = duplicateSequence(activeSequence);
if (!nSequence) {
alert("Fehler beim Duplizieren der Sequenz.");
return;
}
var newSequence = project.activeSequence;
// Trenne und entferne Videoclips in der neuen duplizierten Sequenz
separateAndRemoveVideoClips(newSequence);
// Export
// var fullOutPath = absPath + finalseqname + '.aaf';
var fullOutPath = aaf_filename;
var aaf_result = app.project.exportAAF(app.project.activeSequence, fullOutPath, 0, 1, 48000, 24, 1, 0, 1, 100, '', 1, 1, 0);
app.project.deleteSequence(newSequence);
return aaf_result;
}
// Skript ausführen
var aaf_filename = '{stream.variable.aaf_filename_final}';
var result = main(aaf_filename);
result;
Rohdaten
{
"class": "nodes.actions.helmut.job.JobPremiereExecuteExtendScriptActionV2",
"deprecated": false,
"properties": {
"extendScript": "// Funktion zum Duplizieren einer Sequenz\nfunction duplicateSequence(sequence) {\n var newSequenceName = sequence.name + \"_copy\";\n var newSequence = sequence.clone();\n newSequence.name = newSequenceName;\n return newSequence;\n}\n\n// Funktion zum Trennen von Videoclips von Audioclips und Entfernen der Videoclips\nfunction separateAndRemoveVideoClips(sequence) {\n for (var trackIndex = 0; trackIndex < sequence.videoTracks.numTracks; trackIndex++) {\n var track = sequence.videoTracks[trackIndex];\n \n for (var clipIndex = track.clips.numItems - 1; clipIndex >= 0; clipIndex--) {\n var clip = track.clips[clipIndex];\n\n if (clip.type === 1) {\n var linkedClips = clip.getLinkedItems();\n if (linkedClips === null){\n clip.remove(0, 0);\n } else {\n // Überprüfen, ob es verknüpfte Audioclips gibt und trennen\n if (linkedClips.length > 0) {\n for (var linkedIndex = 0; linkedIndex < linkedClips.length; linkedIndex++) {\n var linkedClip = linkedClips[linkedIndex];\n if (linkedClip.type === 2) {\n linkedClip.unlink();\n }\n }\n }\n clip.remove(0, 0);\n }\n }\n }\n }\n app.project.save();\n}\n\n// Hauptfunktion\nfunction main(aaf_filename) {\n var project = app.project;\n var activeSequence = project.activeSequence;\n\n if (!activeSequence) {\n alert(\"Keine aktive Sequenz gefunden.\");\n return;\n }\n\n // Dupliziere die aktive Sequenz\n var nSequence = duplicateSequence(activeSequence);\n if (!nSequence) {\n alert(\"Fehler beim Duplizieren der Sequenz.\");\n return;\n }\n\n var newSequence = project.activeSequence;\n\n // Trenne und entferne Videoclips in der neuen duplizierten Sequenz\n separateAndRemoveVideoClips(newSequence);\n\n // Export\n\t// var fullOutPath = absPath + finalseqname + '.aaf';\n var fullOutPath = aaf_filename;\n var aaf_result = app.project.exportAAF(app.project.activeSequence, fullOutPath , 0, 1, 48000, 24, 1, 0, 1, 100,'',1,1,0);\n app.project.deleteSequence(newSequence);\n return aaf_result;\n}\n\n// Skript ausführen\nvar aaf_filename = '{stream.variable.aaf_filename_final}';\nvar result = main(aaf_filename);\nresult;",
"nodeUUID": "9178ebd3-f5be-417a-8d32-bc2c89f9ff31",
"failedNodeUUID": "76be5ad4-fcef-4cb4-ac8b-aa924c079632",
"successNodeUUID": "bd804c1c-5f42-4a4f-ab04-af747faef030"
}
}