Aktive Konfiguration: PROD · Helmut4 PROD · helmut4_backup_l-helmut1.adin.mdr.de_2026-10-19 07_52_22 197 Streams
Öffnen
PROD IO

AudioClip-Liste erzeugen

Helmut4 PROD · helmut4_backup_l-helmut1.adin.mdr.de_2026-10-19 07_52_22

Struktur und Aufrufe dieses Streams prüfen Im HView öffnen Abhängigkeiten
Zur Konfiguration
Hervorgehobener Node: 4fd0735c-a6b2-414a-9723-a870201c8835
Die UUID wird in den Rohdaten markiert. Die Node-Klasse findest du in der Deprecated-Arbeitsliste oder direkt im JSON-Ausschnitt.

Gruppenzugehörigkeit

Keine explizite Zuordnung

Aktivierung

Aktiviert

Jobstatus im Dashboard

2 Job Status Update

Grafische Streamansicht

9 Nodes
Klick auf einen Node zeigt Details. positiv negativ Trigger

Variablen und Fundstellen

0
Keine direkten Variablenverwendungen erkannt.

Stream-Rohdaten

{
  "id": "69e8d4770a5acf262e607113",
  "name": "AudioClip-Liste erzeugen",
  "createDate": "2026-04-22T14:00:23.372Z",
  "modificationDate": "2026-08-05T09:33:13.233Z",
  "streamEvent": "EXPORT",
  "streamHost": "CLIENT",
  "disabled": false,
  "startNodeUUID": "d160febe-2fc5-4e12-8ac5-1dbe599f612f",
  "groups": [],
  "order": 0,
  "tags": [
    "IO"
  ],
  "design": "{\"operators\":{\"0\":{\"top\":510,\"left\":1445,\"properties\":{\"description\":\"Will set a temporary custom stream variable\",\"title\":\"Stream Set Temporary Variable Action\",\"nodeUUID\":\"7f3aba6b-b229-49b6-b877-e04d31319855\",\"uncontained\":false,\"class\":\"nodes.actions.helmut.stream.StreamSetTemporaryVariableActionImpl\",\"className\":\"actionNode\",\"parameter\":{\"Variable name\":{\"type\":\"STRING\",\"description\":\"Name of the temporary variable to be set\",\"variableName\":\"variableName\",\"placeholder\":\"my_variable\",\"value\":\"audio_formate\"},\"Variable value\":{\"type\":\"STRING\",\"description\":\"Name of the value to be used for the temporary variable\",\"variableName\":\"variableValue\",\"placeholder\":\"my_value_name\",\"value\":\"{job.metadata.Audio Formate}\"}},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"1\":{\"top\":515,\"left\":1015,\"properties\":{\"description\":\"Will set a job's status\",\"title\":\"Job Status Update Action\",\"nodeUUID\":\"4abdbee9-c926-4822-8b0e-706359878c7d\",\"uncontained\":false,\"class\":\"nodes.actions.helmut.job.JobStatusUpdateActionImpl\",\"className\":\"actionNode\",\"parameter\":{\"Status\":{\"type\":\"ENUM\",\"description\":\"Changes the status in the dashboard to the desired state. 'Queued' restarts the job\",\"variableName\":\"status\",\"values\":[\"SUCCESSFUL\",\"FAILED\",\"QUEUED\",\"RUNNING\"],\"value\":\"RUNNING\"},\"Message\":{\"type\":\"STRING\",\"description\":\"Dashboard message to be shown\",\"variableName\":\"msg\",\"placeholder\":\"This is a new message for the dashboard defined by {user.name}\",\"value\":\"Erstelle Audio-Clip Liste für \\\"{job.name}\\\"\"},\"Progress\":{\"type\":\"INTEGER\",\"description\":\"Status of the progress circle in the dashboard\",\"variableName\":\"progress\",\"placeholder\":\"If set to '-1', the spinner turns until status changes again\",\"values\":[\"100\"],\"value\":\"50\"}},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"2\":{\"top\":515,\"left\":3520,\"properties\":{\"description\":\"Will set a job's status\",\"title\":\"Job Status Update Action\",\"nodeUUID\":\"fcfc9587-d02a-4ee2-ac45-d40ed8e8fc67\",\"uncontained\":false,\"class\":\"nodes.actions.helmut.job.JobStatusUpdateActionImpl\",\"className\":\"actionNode\",\"parameter\":{\"Status\":{\"type\":\"ENUM\",\"description\":\"Changes the status in the dashboard to the desired state. 'Queued' restarts the job\",\"variableName\":\"status\",\"values\":[\"SUCCESSFUL\",\"FAILED\",\"QUEUED\",\"RUNNING\"],\"value\":\"SUCCESSFUL\"},\"Message\":{\"type\":\"STRING\",\"description\":\"Dashboard message to be shown\",\"variableName\":\"msg\",\"placeholder\":\"This is a new message for the dashboard defined by {user.name}\",\"value\":\"Export Audio-Clip Liste \\\"{job.name}\\\" abgeschlossen\"},\"Progress\":{\"type\":\"INTEGER\",\"description\":\"Status of the progress circle in the dashboard\",\"variableName\":\"progress\",\"placeholder\":\"If set to '-1', the spinner turns until status changes again\",\"values\":[\"100\"],\"value\":\"100\"}},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"4\":{\"top\":520,\"left\":1815,\"properties\":{\"description\":\"Will set a temporary custom stream variable\",\"title\":\"Stream Set Temporary Variable Action\",\"nodeUUID\":\"896a7b6c-a347-4c6c-8480-dab87d93a520\",\"uncontained\":false,\"class\":\"nodes.actions.helmut.stream.StreamSetTemporaryVariableActionImpl\",\"className\":\"actionNode\",\"parameter\":{\"Variable name\":{\"type\":\"STRING\",\"description\":\"Name of the temporary variable to be set\",\"variableName\":\"variableName\",\"placeholder\":\"my_variable\",\"value\":\"file_json\"},\"Variable value\":{\"type\":\"STRING\",\"description\":\"Name of the value to be used for the temporary variable\",\"variableName\":\"variableValue\",\"placeholder\":\"my_value_name\",\"value\":\"{job.metadata.JSON-Datei}\"}},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"5\":{\"top\":520,\"left\":2185,\"properties\":{\"description\":\"Will set a temporary custom stream variable\",\"title\":\"Stream Set Temporary Variable Action\",\"nodeUUID\":\"157ba8d8-4e37-409a-ba90-fb0f399b9829\",\"uncontained\":false,\"class\":\"nodes.actions.helmut.stream.StreamSetTemporaryVariableActionImpl\",\"className\":\"actionNode\",\"parameter\":{\"Variable name\":{\"type\":\"STRING\",\"description\":\"Name of the temporary variable to be set\",\"variableName\":\"variableName\",\"placeholder\":\"my_variable\",\"value\":\"file_csv\"},\"Variable value\":{\"type\":\"STRING\",\"description\":\"Name of the value to be used for the temporary variable\",\"variableName\":\"variableValue\",\"placeholder\":\"my_value_name\",\"value\":\"{job.metadata.CSV-Datei}\"}},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"6\":{\"top\":520,\"left\":2560,\"properties\":{\"description\":\"Will set a temporary custom stream variable\",\"title\":\"Stream Set Temporary Variable Action\",\"nodeUUID\":\"4fd0735c-a6b2-414a-9723-a870201c8835\",\"uncontained\":false,\"class\":\"nodes.actions.helmut.stream.StreamSetTemporaryVariableActionImpl\",\"className\":\"actionNode\",\"parameter\":{\"Variable name\":{\"type\":\"STRING\",\"description\":\"Name of the temporary variable to be set\",\"variableName\":\"variableName\",\"placeholder\":\"my_variable\",\"value\":\"group_clips\"},\"Variable value\":{\"type\":\"STRING\",\"description\":\"Name of the value to be used for the temporary variable\",\"variableName\":\"variableValue\",\"placeholder\":\"my_value_name\",\"value\":\"{job.metadata.Audio Clips zusammenfassen}\"}},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"7\":{\"top\":825,\"left\":3055,\"properties\":{\"description\":\"Will execute ExtendScript in Premiere (panel required)\",\"title\":\"Job Execute ExtendScript In Premiere Action V2\",\"nodeUUID\":\"56eacfc1-766a-42c5-8c99-e801c6497436\",\"uncontained\":false,\"class\":\"nodes.actions.helmut.job.JobPremiereExecuteExtendScriptActionV2\",\"className\":\"actionNode\",\"parameter\":{\"ExtendScript\":{\"type\":\"LONG_STRING\",\"variableName\":\"extendScript\",\"value\":\"var group_clips = '{stream.variable.group_clips}'; var file_csv = '{stream.variable.file_csv}'; var file_json = '{stream.variable.file_json}'; var audioformate = '{stream.variable.audio_formate}'; var AudioExportConfig = { extensions: { wav: true, aiff: true, mp3: true, m4a: true, aac: true }, groupByName: true, csv: false, json: false }; function parseAudioExtensions(str) { var validExt = [\\\"wav\\\", \\\"aif\\\", \\\"aiff\\\", \\\"mp3\\\", \\\"m4a\\\", \\\"aac\\\"]; if (!str || typeof str !== \\\"string\\\") { var empty = {}; for (var i = 0; i < validExt.length; i++) { empty[validExt[i]] = false; } return empty; } var cleaned = str.toLowerCase(); cleaned = cleaned.replace(/[\\\\s]+/g, \\\"\\\"); cleaned = cleaned.replace(/;/g, \\\",\\\"); cleaned = cleaned.replace(/,+/g, \\\",\\\"); cleaned = cleaned.replace(/^,|,$/g, \\\"\\\"); if (cleaned === \\\"\\\") { var empty2 = {}; for (var j = 0; j < validExt.length; j++) { empty2[validExt[j]] = false; } return empty2; } var parts = cleaned.split(\\\",\\\"); var out = {}; var x; for (x = 0; x < validExt.length; x++) { out[validExt[x]] = false; } for (var k = 0; k < parts.length; k++) { var ext = parts[k]; if (!ext) { continue; } var isValid = false; for (var v = 0; v < validExt.length; v++) { if (validExt[v] === ext) { isValid = true; break; } } if (isValid) { out[ext] = true; } } return out; } function exportAudioClipsFromActiveSequence(cfg) { if (!app.project || !app.project.activeSequence) { alert(\\\"Keine aktive Sequenz gefunden.\\\"); return; } var seq = app.project.activeSequence; var audioTracks = seq.audioTracks; if (!audioTracks || audioTracks.numTracks === 0) { alert(\\\"Die aktive Sequenz hat keine Audio-Tracks.\\\"); return; } var effectiveConfig = { extensions: { wav: (cfg && cfg.extensions && typeof cfg.extensions.wav === \\\"boolean\\\") ? cfg.extensions.wav : AudioExportConfig.extensions.wav, aif: (cfg && cfg.extensions && typeof cfg.extensions.aif === \\\"boolean\\\") ? cfg.extensions.aiff : AudioExportConfig.extensions.aiff, aiff: (cfg && cfg.extensions && typeof cfg.extensions.aiff === \\\"boolean\\\") ? cfg.extensions.aiff : AudioExportConfig.extensions.aiff, mp3: (cfg && cfg.extensions && typeof cfg.extensions.mp3 === \\\"boolean\\\") ? cfg.extensions.mp3 : AudioExportConfig.extensions.mp3, m4a: (cfg && cfg.extensions && typeof cfg.extensions.m4a === \\\"boolean\\\") ? cfg.extensions.m4a : AudioExportConfig.extensions.m4a, aac: (cfg && cfg.extensions && typeof cfg.extensions.aac === \\\"boolean\\\") ? cfg.extensions.aac : AudioExportConfig.extensions.aac }, groupByName: (cfg && typeof cfg.groupByName === \\\"boolean\\\") ? cfg.groupByName : AudioExportConfig.groupByName, csv: (cfg && typeof cfg.csv === \\\"boolean\\\") ? cfg.csv : AudioExportConfig.csv, json: (cfg && typeof cfg.json === \\\"boolean\\\") ? cfg.json : AudioExportConfig.json }; var TICKS_PER_SECOND = 254016000000.0; var zeroSec = 0; try { if (seq.zeroPoint !== undefined && seq.zeroPoint !== null) { var zeroTicks = parseFloat(seq.zeroPoint); if (!isNaN(zeroTicks)) { zeroSec = zeroTicks / TICKS_PER_SECOND; } } } catch (eZ) { zeroSec = 0; } var safeSeqName = sanitizeName(seq.name); var txtPath = Folder.desktop.fsName + \\\"/AudioClipListe_\\\" + safeSeqName + \\\".txt\\\"; var txtFile = new File(txtPath); txtFile.encoding = \\\"UTF-8\\\"; if (!txtFile.open(\\\"w\\\", \\\"TEXT\\\", \\\"????\\\")) { alert(\\\"Konnte die Textdatei nicht \\\\u00f6ffnen.\\\"); return; } var csvFile = null; if (effectiveConfig.csv) { var csvPath = Folder.desktop.fsName + \\\"/AudioClipListe_\\\" + safeSeqName + \\\".csv\\\"; csvFile = new File(csvPath); csvFile.encoding = \\\"UTF-8\\\"; if (!csvFile.open(\\\"w\\\", \\\"TEXT\\\", \\\"????\\\")) { alert(\\\"Konnte die CSV-Datei nicht \\\\u00f6ffnen. Es wird nur TXT geschrieben.\\\"); csvFile = null; } } var jsonFile = null; if (effectiveConfig.json) { var jsonPath = Folder.desktop.fsName + \\\"/AudioClipListe_\\\" + safeSeqName + \\\".json\\\"; jsonFile = new File(jsonPath); jsonFile.encoding = \\\"UTF-8\\\"; if (!jsonFile.open(\\\"w\\\", \\\"TEXT\\\", \\\"????\\\")) { alert(\\\"Konnte die JSON-Datei nicht \\\\u00f6ffnen. Es wird nur TXT/CSV geschrieben.\\\"); jsonFile = null; } } txtFile.writeln(\\\"Audio-Clip-Liste f\\\\u00fcr Sequenz: \\\" + seq.name); txtFile.writeln(\\\"-----------------------------------------------------\\\"); txtFile.writeln( \\\"Filter: \\\" + \\\"mp3=\\\" + effectiveConfig.extensions.mp3 + \\\", \\\" + \\\"m4a=\\\" + effectiveConfig.extensions.m4a + \\\", \\\" + \\\"wav=\\\" + effectiveConfig.extensions.wav + \\\", \\\" + \\\"aiff=\\\" + effectiveConfig.extensions.aiff + \\\", \\\" + \\\"aac=\\\" + effectiveConfig.extensions.aac ); txtFile.writeln(\\\"Gruppieren nach Name: \\\" + effectiveConfig.groupByName); txtFile.writeln(\\\"\\\"); function formatSeconds(sec) { if (sec < 0) sec = 0; var sInt = Math.floor(sec); var h = Math.floor(sInt / 3600); var m = Math.floor((sInt [<]%[>] 3600) / 60); var s = sInt [<]%[>] 60; function pad2(n) { return (n < 10 ? \\\"0\\\" : \\\"\\\") + n; } return pad2(h) + \\\":\\\" + pad2(m) + \\\":\\\" + pad2(s); } function sanitizeName(name) { if (!name) return \\\"Sequence\\\"; var s = name.toString(); s = s.replace(/[^a-zA-Z0-9_\\\\-]/g, \\\"_\\\"); s = s.replace(/_+/g, \\\"_\\\"); s = s.replace(/^_+|_+$/g, \\\"\\\"); if (s.length === 0) s = \\\"Sequence\\\"; return s; } function escapeJsonString(str) { if (str === null || str === undefined) { return \\\"\\\"; } var s = String(str); s = s.replace(/\\\\\\\\/g, \\\"\\\\\\\\\\\\\\\\\\\"); s = s.replace(/\\\"/g, \\\"\\\\\\\\\\\\\\\"\\\"); s = s.replace(/\\\\r/g, \\\"\\\\\\\\r\\\"); s = s.replace(/\\\\n/g, \\\"\\\\\\\\n\\\"); s = s.replace(/\\\\t/g, \\\"\\\\\\\\t\\\"); return s; } function hasSupportedAudioExtension(name, cfgExt) { if (!name) return false; var lower = name.toLowerCase(); var dotPos = lower.lastIndexOf(\\\".\\\"); if (dotPos < 0) return false; var ext = lower.substring(dotPos + 1); if (ext === \\\"mp3\\\" && cfgExt.mp3) return true; if (ext === \\\"m4a\\\" && cfgExt.m4a) return true; if (ext === \\\"wav\\\" && cfgExt.wav) return true; if (ext === \\\"aiff\\\" && cfgExt.aiff) return true; if (ext === \\\"aif\\\" && cfgExt.aiff) return true; return false; } function isLinkedToVideo(trackItem) { if (!trackItem || !trackItem.getLinkedItems) { return false; } var linked; try { linked = trackItem.getLinkedItems(); } catch (e) { $.writeln(\\\"Fehler bei getLinkedItems: \\\" + e); return false; } if (!linked) { return false; } try { var len = (linked.length !== undefined) ? linked.length : linked.numItems; for (var i = 0; i < len; i++) { var li = linked[i]; if (!li) continue; var parentTrack = li.parentTrack; if (parentTrack && parentTrack.isVideo === true) { return true; } return true; } } catch (e2) { $.writeln(\\\"Fehler bei Auswertung der Linked Items: \\\" + e2); } return false; } var clipInstanceCount = 0; var durationsByName = {}; var singleClipEntries = []; for (var t = 0; t < audioTracks.numTracks; t++) { var track = audioTracks[t]; if (!track || !track.clips) continue; var clips = track.clips; var numClips = clips.numItems; for (var c = 0; c < numClips; c++) { var item = clips[c]; if (!item) continue; if (isLinkedToVideo(item)) { continue; } var projItem = item.projectItem; if (!projItem) continue; var name = projItem.name; if (!hasSupportedAudioExtension(name, effectiveConfig.extensions)) { continue; } var inTimelineSec = 0; var outTimelineSec = 0; try { if (item.start && item.start.seconds !== undefined) { inTimelineSec = item.start.seconds; } if (item.end && item.end.seconds !== undefined) { outTimelineSec = item.end.seconds; } } catch (e3) { } var durationSeconds = 0; var rawDur = outTimelineSec - inTimelineSec; if (rawDur > 0) { durationSeconds = Math.ceil(rawDur); } else if (item.duration && item.duration.seconds !== undefined) { durationSeconds = Math.ceil(item.duration.seconds); } else { durationSeconds = 0; } if (durationSeconds < 0) { durationSeconds = 0; } clipInstanceCount++; if (durationsByName[name] === undefined) { durationsByName[name] = 0; } durationsByName[name] += durationSeconds; var displayInSec = Math.floor(zeroSec + inTimelineSec); var displayOutSec = displayInSec + durationSeconds; singleClipEntries.push({ name: name, inSec: displayInSec, outSec: displayOutSec, durSec: durationSeconds }); } } if (jsonFile) { jsonFile.writeln(\\\"{\\\"); jsonFile.writeln(' \\\"sequenceName\\\": \\\"' + escapeJsonString(seq.name) + '\\\",'); jsonFile.writeln(' \\\"sequenceStartSeconds\\\": ' + zeroSec + \\\",\\\"); jsonFile.writeln(' \\\"groupByName\\\": ' + (effectiveConfig.groupByName ? \\\"true\\\" : \\\"false\\\") + \\\",\\\"); jsonFile.writeln(' \\\"extensions\\\": {'); jsonFile.writeln(' \\\"wav\\\": ' + (effectiveConfig.extensions.wav ? \\\"true\\\" : \\\"false\\\") + \\\",\\\"); jsonFile.writeln(' \\\"aif\\\": ' + (effectiveConfig.extensions.aif ? \\\"true\\\" : \\\"false\\\") + \\\",\\\"); jsonFile.writeln(' \\\"aiff\\\": ' + (effectiveConfig.extensions.aiff ? \\\"true\\\" : \\\"false\\\") + \\\",\\\"); jsonFile.writeln(' \\\"mp3\\\": ' + (effectiveConfig.extensions.mp3 ? \\\"true\\\" : \\\"false\\\") + \\\",\\\"); jsonFile.writeln(' \\\"m4a\\\": ' + (effectiveConfig.extensions.m4a ? \\\"true\\\" : \\\"false\\\") + \\\",\\\"); jsonFile.writeln(' \\\"aac\\\": ' + (effectiveConfig.extensions.aac ? \\\"true\\\" : \\\"false\\\")); jsonFile.writeln(\\\" },\\\"); jsonFile.writeln(' \\\"clips\\\": ['); } var keys = []; for (var k in durationsByName) { if (durationsByName.hasOwnProperty(k)) { keys.push(k); } } keys.sort(); var uniqueCount = keys.length; singleClipEntries.sort(function (a, b) { return a.inSec - b.inSec; }); txtFile.writeln(\\\"Zusammengefasste Liste\\\"); txtFile.writeln(\\\"----------------------------------------------\\\"); txtFile.writeln(\\\"Name | Gesamt-Dauer\\\"); txtFile.writeln(\\\"----------------------------------------------\\\"); for (var i = 0; i < keys.length; i++) { var clipName = keys[i]; var totalSec = durationsByName[clipName]; var totalStr = formatSeconds(totalSec); txtFile.writeln(clipName + \\\" | \\\" + totalStr); } txtFile.writeln(\\\"\\\"); txtFile.writeln(\\\"----------------------------------------------\\\"); txtFile.writeln(\\\"Anzahl Clip-Instanzen (alle Eins\\\\u00e4tze): \\\" + clipInstanceCount); txtFile.writeln(\\\"Anzahl eindeutiger Audio-Dateinamen: \\\" + uniqueCount); txtFile.writeln(\\\"\\\"); txtFile.writeln(\\\"\\\"); txtFile.writeln(\\\"Einzelausgabe\\\"); txtFile.writeln(\\\"----------------------------------------------------------\\\"); txtFile.writeln(\\\"TC-In | TC-Out | Dauer | Name\\\"); txtFile.writeln(\\\"----------------------------------------------------------\\\"); for (var j = 0; j < singleClipEntries.length; j++) { var e = singleClipEntries[j]; var inStr = formatSeconds(e.inSec); var outStr = formatSeconds(e.outSec); var durStr = formatSeconds(e.durSec); txtFile.writeln(inStr + \\\" | \\\" + outStr + \\\" | \\\" + durStr + \\\" | \\\" + e.name); } txtFile.writeln(\\\"\\\"); txtFile.writeln(\\\"----------------------------------------------------------\\\"); txtFile.writeln(\\\"Anzahl Clip-Instanzen (alle Eins\\\\u00e4tze): \\\" + clipInstanceCount); if (effectiveConfig.groupByName) { if (csvFile) { csvFile.writeln(\\\"Name;GesamtDauerHHMMSS;GesamtDauerSekunden\\\"); } for (var g = 0; g < keys.length; g++) { var groupedClipName = keys[g]; var groupedTotalSec = durationsByName[groupedClipName]; var groupedTotalStr = formatSeconds(groupedTotalSec); if (csvFile) { csvFile.writeln(groupedClipName + \\\";\\\" + groupedTotalStr + \\\";\\\" + groupedTotalSec); } if (jsonFile) { var line = ' { \\\"name\\\": \\\"' + escapeJsonString(groupedClipName) + '\\\", \\\"totalSeconds\\\": ' + groupedTotalSec + ', \\\"totalTimecode\\\": \\\"' + groupedTotalStr + '\\\" }'; if (g < uniqueCount - 1) { line += \\\",\\\"; } jsonFile.writeln(line); } } } else { if (csvFile) { csvFile.writeln(\\\"TCIn;TCOut;Dauer;Name\\\"); } for (var s = 0; s < singleClipEntries.length; s++) { var singleEntry = singleClipEntries[s]; var singleInStr = formatSeconds(singleEntry.inSec); var singleOutStr = formatSeconds(singleEntry.outSec); var singleDurStr = formatSeconds(singleEntry.durSec); if (csvFile) { csvFile.writeln(singleInStr + \\\";\\\" + singleOutStr + \\\";\\\" + singleDurStr + \\\";\\\" + singleEntry.name); } if (jsonFile) { var jLine = ' { \\\"name\\\": \\\"' + escapeJsonString(singleEntry.name) + '\\\", \\\"tcIn\\\": \\\"' + singleInStr + '\\\", \\\"tcOut\\\": \\\"' + singleOutStr + '\\\", \\\"duration\\\": \\\"' + singleDurStr + '\\\", \\\"durationSeconds\\\": ' + singleEntry.durSec + ', \\\"tcInSeconds\\\": ' + singleEntry.inSec + ', \\\"tcOutSeconds\\\": ' + singleEntry.outSec + ' }'; if (s < singleClipEntries.length - 1) { jLine += \\\",\\\"; } jsonFile.writeln(jLine); } } } if (jsonFile) { jsonFile.writeln(\\\" ]\\\"); jsonFile.writeln(\\\"}\\\"); } txtFile.close(); if (csvFile) { csvFile.close(); } if (jsonFile) { jsonFile.close(); } var msg = \\\"Export abgeschlossen.\\\\n\\\" + \\\"Clip-Instanzen (alle Eins\\\\u00e4tze): \\\" + clipInstanceCount + \\\"\\\\n\\\" + \\\"Gruppiert nach Name: \\\" + effectiveConfig.groupByName + \\\"\\\\n\\\" + \\\"TXT: \\\" + txtFile.fsName; if (csvFile) { msg += \\\"\\\\nCSV: \\\" + csvFile.fsName; } if (jsonFile) { msg += \\\"\\\\nJSON: \\\" + jsonFile.fsName; } alert(msg); } var uiFilter = { extensions: parseAudioExtensions(audioformate), groupByName: group_clips === 'true', csv: file_csv === 'true', json: file_json === 'true' }; exportAudioClipsFromActiveSequence(uiFilter);\"}},\"globalParameter\":{\"Async\":{\"type\":\"BOOLEAN\",\"variableName\":\"async\",\"value\":false}},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"22\":{\"top\":230,\"left\":550,\"properties\":{\"description\":\"Will split a stream into a synchronous and an asynchronous way. Required if a stream's execution time might exceed 60 seconds. A stream fails after 60 seconds. The asynchronous path is executed synchronously in itself and may take longer than 60 seconds\",\"title\":\"Split Stream Action\",\"nodeUUID\":\"d160febe-2fc5-4e12-8ac5-1dbe599f612f\",\"uncontained\":false,\"class\":\"nodes.actions.general.SplitStreamActionImpl\",\"className\":\"actionNode\",\"parameter\":{},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"23\":{\"top\":65,\"left\":1260,\"properties\":{\"description\":\"Will sleep for an amount of milliseconds\",\"title\":\"Sleep Action\",\"nodeUUID\":\"d98d5923-6efd-4ac0-80e3-0127f9b44f76\",\"uncontained\":false,\"class\":\"nodes.actions.general.SleepActionImpl\",\"className\":\"actionNode\",\"parameter\":{\"Milliseconds\":{\"type\":\"INTEGER\",\"description\":\"Amount of milliseconds that the node waits for\",\"variableName\":\"ms\",\"placeholder\":\"1000\",\"values\":[\"100\"],\"value\":\"100\"}},\"globalParameter\":{\"Async\":{\"type\":\"BOOLEAN\",\"variableName\":\"async\",\"value\":false}},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"startNode\":{\"left\":20,\"properties\":{\"class\":\"streamEvent\",\"className\":\"eventNode\",\"inputs\":{},\"outputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"parameter\":{\"Event\":{\"type\":\"ENUM\",\"value\":\"EXPORT\",\"values\":[\"ADDED_ASSET\",\"ARCHIVE\",\"AUTOIMPORT\",\"BACKUP\",\"CONNECTED\",\"CONSOLIDATE\",\"COPY\",\"CREATE_CATEGORY\",\"CREATE_GROUP\",\"CREATE_PROJECT\",\"CREATE_USER\",\"CUSTOM_CO\",\"CUSTOM_FX\",\"CUSTOM_IO\",\"CUSTOM_USER\",\"DELETE\",\"DELETE_CATEGORY\",\"DELETE_GROUP\",\"DELETE_PROJECT\",\"DELETE_TEMPLATE\",\"DELETE_USER\",\"DISCONNECTED\",\"DUPLICATE_PROJECT\",\"EDIT_PROJECT\",\"EXPORT\",\"IMPORT\",\"IMPORT_PROJECT\",\"INDEXED_ASSET\",\"INDEXED_PROJECT\",\"MOVE\",\"OPEN_PROJECT\",\"PANEL_IMPORT\",\"POST_CREATE_PROJECT\",\"PRESTREAM\",\"RESTORE\",\"RESTORE_SAVE\",\"UNASSIGNED\",\"UNINDEXED_ASSET\",\"UNLOCK_PROJECT\",\"UPLOAD_TEMPLATE\",\"WATCHFOLDER\",\"WEB_EXPORT\",\"WEB_IMPORT\",\"WEB_UPLOAD\"],\"variableName\":\"streamEvent\"},\"Host\":{\"type\":\"ENUM\",\"value\":\"CLIENT\",\"values\":[\"SERVER\",\"CLIENT\"],\"variableName\":\"streamHost\"}},\"title\":\"Event trigger: AudioClip-Liste erzeugen\",\"uncontained\":false,\"nodeUUID\":\"54936116-8d1e-4447-8a38-7bb7212edb15\"},\"top\":20}},\"links\":{\"2\":{\"fromOperator\":1,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":\"0\",\"toConnector\":\"trigger\",\"toSubConnector\":0},\"3\":{\"fromOperator\":4,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":5,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"5\":{\"fromOperator\":5,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":6,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"7\":{\"fromOperator\":6,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":7,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"30\":{\"fromOperator\":7,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":2,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"31\":{\"fromOperator\":\"0\",\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":4,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"32\":{\"fromOperator\":\"startNode\",\"fromConnector\":\"trigger\",\"fromSubConnector\":0,\"toOperator\":22,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"33\":{\"fromOperator\":22,\"fromConnector\":\"failed\",\"fromSubConnector\":0,\"toOperator\":1,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"34\":{\"fromOperator\":22,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":23,\"toConnector\":\"trigger\",\"toSubConnector\":0}},\"operatorTypes\":{},\"grid\":{\"height\":9000,\"width\":16000}}",
  "deprecated": false,
  "nodeList": [
    {
      "class": "nodes.actions.helmut.stream.StreamSetTemporaryVariableActionImpl",
      "deprecated": false,
      "properties": {
        "variableName": "audio_formate",
        "variableValue": "{job.metadata.Audio Formate}",
        "nodeUUID": "7f3aba6b-b229-49b6-b877-e04d31319855",
        "successNodeUUID": "896a7b6c-a347-4c6c-8480-dab87d93a520"
      }
    },
    {
      "class": "nodes.actions.helmut.job.JobStatusUpdateActionImpl",
      "deprecated": false,
      "properties": {
        "status": "RUNNING",
        "msg": "Erstelle Audio-Clip Liste für \"{job.name}\"",
        "progress": 50,
        "nodeUUID": "4abdbee9-c926-4822-8b0e-706359878c7d",
        "successNodeUUID": "7f3aba6b-b229-49b6-b877-e04d31319855"
      }
    },
    {
      "class": "nodes.actions.helmut.job.JobStatusUpdateActionImpl",
      "deprecated": false,
      "properties": {
        "status": "SUCCESSFUL",
        "msg": "Export Audio-Clip Liste \"{job.name}\" abgeschlossen",
        "progress": 100,
        "nodeUUID": "fcfc9587-d02a-4ee2-ac45-d40ed8e8fc67"
      }
    },
    {
      "class": "nodes.actions.helmut.stream.StreamSetTemporaryVariableActionImpl",
      "deprecated": false,
      "properties": {
        "variableName": "file_json",
        "variableValue": "{job.metadata.JSON-Datei}",
        "nodeUUID": "896a7b6c-a347-4c6c-8480-dab87d93a520",
        "successNodeUUID": "157ba8d8-4e37-409a-ba90-fb0f399b9829"
      }
    },
    {
      "class": "nodes.actions.helmut.stream.StreamSetTemporaryVariableActionImpl",
      "deprecated": false,
      "properties": {
        "variableName": "file_csv",
        "variableValue": "{job.metadata.CSV-Datei}",
        "nodeUUID": "157ba8d8-4e37-409a-ba90-fb0f399b9829",
        "successNodeUUID": "4fd0735c-a6b2-414a-9723-a870201c8835"
      }
    },
    {
      "class": "nodes.actions.helmut.stream.StreamSetTemporaryVariableActionImpl",
      "deprecated": false,
      "properties": {
        "variableName": "group_clips",
        "variableValue": "{job.metadata.Audio Clips zusammenfassen}",
        "nodeUUID": "4fd0735c-a6b2-414a-9723-a870201c8835",
        "successNodeUUID": "56eacfc1-766a-42c5-8c99-e801c6497436"
      }
    },
    {
      "class": "nodes.actions.helmut.job.JobPremiereExecuteExtendScriptActionV2",
      "deprecated": false,
      "properties": {
        "extendScript": "var group_clips = '{stream.variable.group_clips}'; var file_csv = '{stream.variable.file_csv}'; var file_json = '{stream.variable.file_json}'; var audioformate = '{stream.variable.audio_formate}'; var AudioExportConfig = { extensions: { wav: true, aiff: true, mp3: true, m4a: true, aac: true }, groupByName: true, csv: false, json: false }; function parseAudioExtensions(str) { var validExt = [\"wav\", \"aif\", \"aiff\", \"mp3\", \"m4a\", \"aac\"]; if (!str || typeof str !== \"string\") { var empty = {}; for (var i = 0; i < validExt.length; i++) { empty[validExt[i]] = false; } return empty; } var cleaned = str.toLowerCase(); cleaned = cleaned.replace(/[\\s]+/g, \"\"); cleaned = cleaned.replace(/;/g, \",\"); cleaned = cleaned.replace(/,+/g, \",\"); cleaned = cleaned.replace(/^,|,$/g, \"\"); if (cleaned === \"\") { var empty2 = {}; for (var j = 0; j < validExt.length; j++) { empty2[validExt[j]] = false; } return empty2; } var parts = cleaned.split(\",\"); var out = {}; var x; for (x = 0; x < validExt.length; x++) { out[validExt[x]] = false; } for (var k = 0; k < parts.length; k++) { var ext = parts[k]; if (!ext) { continue; } var isValid = false; for (var v = 0; v < validExt.length; v++) { if (validExt[v] === ext) { isValid = true; break; } } if (isValid) { out[ext] = true; } } return out; } function exportAudioClipsFromActiveSequence(cfg) { if (!app.project || !app.project.activeSequence) { alert(\"Keine aktive Sequenz gefunden.\"); return; } var seq = app.project.activeSequence; var audioTracks = seq.audioTracks; if (!audioTracks || audioTracks.numTracks === 0) { alert(\"Die aktive Sequenz hat keine Audio-Tracks.\"); return; } var effectiveConfig = { extensions: { wav: (cfg && cfg.extensions && typeof cfg.extensions.wav === \"boolean\") ? cfg.extensions.wav : AudioExportConfig.extensions.wav, aif: (cfg && cfg.extensions && typeof cfg.extensions.aif === \"boolean\") ? cfg.extensions.aiff : AudioExportConfig.extensions.aiff, aiff: (cfg && cfg.extensions && typeof cfg.extensions.aiff === \"boolean\") ? cfg.extensions.aiff : AudioExportConfig.extensions.aiff, mp3: (cfg && cfg.extensions && typeof cfg.extensions.mp3 === \"boolean\") ? cfg.extensions.mp3 : AudioExportConfig.extensions.mp3, m4a: (cfg && cfg.extensions && typeof cfg.extensions.m4a === \"boolean\") ? cfg.extensions.m4a : AudioExportConfig.extensions.m4a, aac: (cfg && cfg.extensions && typeof cfg.extensions.aac === \"boolean\") ? cfg.extensions.aac : AudioExportConfig.extensions.aac }, groupByName: (cfg && typeof cfg.groupByName === \"boolean\") ? cfg.groupByName : AudioExportConfig.groupByName, csv: (cfg && typeof cfg.csv === \"boolean\") ? cfg.csv : AudioExportConfig.csv, json: (cfg && typeof cfg.json === \"boolean\") ? cfg.json : AudioExportConfig.json }; var TICKS_PER_SECOND = 254016000000.0; var zeroSec = 0; try { if (seq.zeroPoint !== undefined && seq.zeroPoint !== null) { var zeroTicks = parseFloat(seq.zeroPoint); if (!isNaN(zeroTicks)) { zeroSec = zeroTicks / TICKS_PER_SECOND; } } } catch (eZ) { zeroSec = 0; } var safeSeqName = sanitizeName(seq.name); var txtPath = Folder.desktop.fsName + \"/AudioClipListe_\" + safeSeqName + \".txt\"; var txtFile = new File(txtPath); txtFile.encoding = \"UTF-8\"; if (!txtFile.open(\"w\", \"TEXT\", \"????\")) { alert(\"Konnte die Textdatei nicht \\u00f6ffnen.\"); return; } var csvFile = null; if (effectiveConfig.csv) { var csvPath = Folder.desktop.fsName + \"/AudioClipListe_\" + safeSeqName + \".csv\"; csvFile = new File(csvPath); csvFile.encoding = \"UTF-8\"; if (!csvFile.open(\"w\", \"TEXT\", \"????\")) { alert(\"Konnte die CSV-Datei nicht \\u00f6ffnen. Es wird nur TXT geschrieben.\"); csvFile = null; } } var jsonFile = null; if (effectiveConfig.json) { var jsonPath = Folder.desktop.fsName + \"/AudioClipListe_\" + safeSeqName + \".json\"; jsonFile = new File(jsonPath); jsonFile.encoding = \"UTF-8\"; if (!jsonFile.open(\"w\", \"TEXT\", \"????\")) { alert(\"Konnte die JSON-Datei nicht \\u00f6ffnen. Es wird nur TXT/CSV geschrieben.\"); jsonFile = null; } } txtFile.writeln(\"Audio-Clip-Liste f\\u00fcr Sequenz: \" + seq.name); txtFile.writeln(\"-----------------------------------------------------\"); txtFile.writeln( \"Filter: \" + \"mp3=\" + effectiveConfig.extensions.mp3 + \", \" + \"m4a=\" + effectiveConfig.extensions.m4a + \", \" + \"wav=\" + effectiveConfig.extensions.wav + \", \" + \"aiff=\" + effectiveConfig.extensions.aiff + \", \" + \"aac=\" + effectiveConfig.extensions.aac ); txtFile.writeln(\"Gruppieren nach Name: \" + effectiveConfig.groupByName); txtFile.writeln(\"\"); function formatSeconds(sec) { if (sec < 0) sec = 0; var sInt = Math.floor(sec); var h = Math.floor(sInt / 3600); var m = Math.floor((sInt [<]%[>] 3600) / 60); var s = sInt [<]%[>] 60; function pad2(n) { return (n < 10 ? \"0\" : \"\") + n; } return pad2(h) + \":\" + pad2(m) + \":\" + pad2(s); } function sanitizeName(name) { if (!name) return \"Sequence\"; var s = name.toString(); s = s.replace(/[^a-zA-Z0-9_\\-]/g, \"_\"); s = s.replace(/_+/g, \"_\"); s = s.replace(/^_+|_+$/g, \"\"); if (s.length === 0) s = \"Sequence\"; return s; } function escapeJsonString(str) { if (str === null || str === undefined) { return \"\"; } var s = String(str); s = s.replace(/\\\\/g, \"\\\\\\\\\"); s = s.replace(/\"/g, \"\\\\\\\"\"); s = s.replace(/\\r/g, \"\\\\r\"); s = s.replace(/\\n/g, \"\\\\n\"); s = s.replace(/\\t/g, \"\\\\t\"); return s; } function hasSupportedAudioExtension(name, cfgExt) { if (!name) return false; var lower = name.toLowerCase(); var dotPos = lower.lastIndexOf(\".\"); if (dotPos < 0) return false; var ext = lower.substring(dotPos + 1); if (ext === \"mp3\" && cfgExt.mp3) return true; if (ext === \"m4a\" && cfgExt.m4a) return true; if (ext === \"wav\" && cfgExt.wav) return true; if (ext === \"aiff\" && cfgExt.aiff) return true; if (ext === \"aif\" && cfgExt.aiff) return true; return false; } function isLinkedToVideo(trackItem) { if (!trackItem || !trackItem.getLinkedItems) { return false; } var linked; try { linked = trackItem.getLinkedItems(); } catch (e) { $.writeln(\"Fehler bei getLinkedItems: \" + e); return false; } if (!linked) { return false; } try { var len = (linked.length !== undefined) ? linked.length : linked.numItems; for (var i = 0; i < len; i++) { var li = linked[i]; if (!li) continue; var parentTrack = li.parentTrack; if (parentTrack && parentTrack.isVideo === true) { return true; } return true; } } catch (e2) { $.writeln(\"Fehler bei Auswertung der Linked Items: \" + e2); } return false; } var clipInstanceCount = 0; var durationsByName = {}; var singleClipEntries = []; for (var t = 0; t < audioTracks.numTracks; t++) { var track = audioTracks[t]; if (!track || !track.clips) continue; var clips = track.clips; var numClips = clips.numItems; for (var c = 0; c < numClips; c++) { var item = clips[c]; if (!item) continue; if (isLinkedToVideo(item)) { continue; } var projItem = item.projectItem; if (!projItem) continue; var name = projItem.name; if (!hasSupportedAudioExtension(name, effectiveConfig.extensions)) { continue; } var inTimelineSec = 0; var outTimelineSec = 0; try { if (item.start && item.start.seconds !== undefined) { inTimelineSec = item.start.seconds; } if (item.end && item.end.seconds !== undefined) { outTimelineSec = item.end.seconds; } } catch (e3) { } var durationSeconds = 0; var rawDur = outTimelineSec - inTimelineSec; if (rawDur > 0) { durationSeconds = Math.ceil(rawDur); } else if (item.duration && item.duration.seconds !== undefined) { durationSeconds = Math.ceil(item.duration.seconds); } else { durationSeconds = 0; } if (durationSeconds < 0) { durationSeconds = 0; } clipInstanceCount++; if (durationsByName[name] === undefined) { durationsByName[name] = 0; } durationsByName[name] += durationSeconds; var displayInSec = Math.floor(zeroSec + inTimelineSec); var displayOutSec = displayInSec + durationSeconds; singleClipEntries.push({ name: name, inSec: displayInSec, outSec: displayOutSec, durSec: durationSeconds }); } } if (jsonFile) { jsonFile.writeln(\"{\"); jsonFile.writeln(' \"sequenceName\": \"' + escapeJsonString(seq.name) + '\",'); jsonFile.writeln(' \"sequenceStartSeconds\": ' + zeroSec + \",\"); jsonFile.writeln(' \"groupByName\": ' + (effectiveConfig.groupByName ? \"true\" : \"false\") + \",\"); jsonFile.writeln(' \"extensions\": {'); jsonFile.writeln(' \"wav\": ' + (effectiveConfig.extensions.wav ? \"true\" : \"false\") + \",\"); jsonFile.writeln(' \"aif\": ' + (effectiveConfig.extensions.aif ? \"true\" : \"false\") + \",\"); jsonFile.writeln(' \"aiff\": ' + (effectiveConfig.extensions.aiff ? \"true\" : \"false\") + \",\"); jsonFile.writeln(' \"mp3\": ' + (effectiveConfig.extensions.mp3 ? \"true\" : \"false\") + \",\"); jsonFile.writeln(' \"m4a\": ' + (effectiveConfig.extensions.m4a ? \"true\" : \"false\") + \",\"); jsonFile.writeln(' \"aac\": ' + (effectiveConfig.extensions.aac ? \"true\" : \"false\")); jsonFile.writeln(\" },\"); jsonFile.writeln(' \"clips\": ['); } var keys = []; for (var k in durationsByName) { if (durationsByName.hasOwnProperty(k)) { keys.push(k); } } keys.sort(); var uniqueCount = keys.length; singleClipEntries.sort(function (a, b) { return a.inSec - b.inSec; }); txtFile.writeln(\"Zusammengefasste Liste\"); txtFile.writeln(\"----------------------------------------------\"); txtFile.writeln(\"Name | Gesamt-Dauer\"); txtFile.writeln(\"----------------------------------------------\"); for (var i = 0; i < keys.length; i++) { var clipName = keys[i]; var totalSec = durationsByName[clipName]; var totalStr = formatSeconds(totalSec); txtFile.writeln(clipName + \" | \" + totalStr); } txtFile.writeln(\"\"); txtFile.writeln(\"----------------------------------------------\"); txtFile.writeln(\"Anzahl Clip-Instanzen (alle Eins\\u00e4tze): \" + clipInstanceCount); txtFile.writeln(\"Anzahl eindeutiger Audio-Dateinamen: \" + uniqueCount); txtFile.writeln(\"\"); txtFile.writeln(\"\"); txtFile.writeln(\"Einzelausgabe\"); txtFile.writeln(\"----------------------------------------------------------\"); txtFile.writeln(\"TC-In | TC-Out | Dauer | Name\"); txtFile.writeln(\"----------------------------------------------------------\"); for (var j = 0; j < singleClipEntries.length; j++) { var e = singleClipEntries[j]; var inStr = formatSeconds(e.inSec); var outStr = formatSeconds(e.outSec); var durStr = formatSeconds(e.durSec); txtFile.writeln(inStr + \" | \" + outStr + \" | \" + durStr + \" | \" + e.name); } txtFile.writeln(\"\"); txtFile.writeln(\"----------------------------------------------------------\"); txtFile.writeln(\"Anzahl Clip-Instanzen (alle Eins\\u00e4tze): \" + clipInstanceCount); if (effectiveConfig.groupByName) { if (csvFile) { csvFile.writeln(\"Name;GesamtDauerHHMMSS;GesamtDauerSekunden\"); } for (var g = 0; g < keys.length; g++) { var groupedClipName = keys[g]; var groupedTotalSec = durationsByName[groupedClipName]; var groupedTotalStr = formatSeconds(groupedTotalSec); if (csvFile) { csvFile.writeln(groupedClipName + \";\" + groupedTotalStr + \";\" + groupedTotalSec); } if (jsonFile) { var line = ' { \"name\": \"' + escapeJsonString(groupedClipName) + '\", \"totalSeconds\": ' + groupedTotalSec + ', \"totalTimecode\": \"' + groupedTotalStr + '\" }'; if (g < uniqueCount - 1) { line += \",\"; } jsonFile.writeln(line); } } } else { if (csvFile) { csvFile.writeln(\"TCIn;TCOut;Dauer;Name\"); } for (var s = 0; s < singleClipEntries.length; s++) { var singleEntry = singleClipEntries[s]; var singleInStr = formatSeconds(singleEntry.inSec); var singleOutStr = formatSeconds(singleEntry.outSec); var singleDurStr = formatSeconds(singleEntry.durSec); if (csvFile) { csvFile.writeln(singleInStr + \";\" + singleOutStr + \";\" + singleDurStr + \";\" + singleEntry.name); } if (jsonFile) { var jLine = ' { \"name\": \"' + escapeJsonString(singleEntry.name) + '\", \"tcIn\": \"' + singleInStr + '\", \"tcOut\": \"' + singleOutStr + '\", \"duration\": \"' + singleDurStr + '\", \"durationSeconds\": ' + singleEntry.durSec + ', \"tcInSeconds\": ' + singleEntry.inSec + ', \"tcOutSeconds\": ' + singleEntry.outSec + ' }'; if (s < singleClipEntries.length - 1) { jLine += \",\"; } jsonFile.writeln(jLine); } } } if (jsonFile) { jsonFile.writeln(\" ]\"); jsonFile.writeln(\"}\"); } txtFile.close(); if (csvFile) { csvFile.close(); } if (jsonFile) { jsonFile.close(); } var msg = \"Export abgeschlossen.\\n\" + \"Clip-Instanzen (alle Eins\\u00e4tze): \" + clipInstanceCount + \"\\n\" + \"Gruppiert nach Name: \" + effectiveConfig.groupByName + \"\\n\" + \"TXT: \" + txtFile.fsName; if (csvFile) { msg += \"\\nCSV: \" + csvFile.fsName; } if (jsonFile) { msg += \"\\nJSON: \" + jsonFile.fsName; } alert(msg); } var uiFilter = { extensions: parseAudioExtensions(audioformate), groupByName: group_clips === 'true', csv: file_csv === 'true', json: file_json === 'true' }; exportAudioClipsFromActiveSequence(uiFilter);",
        "nodeUUID": "56eacfc1-766a-42c5-8c99-e801c6497436",
        "successNodeUUID": "fcfc9587-d02a-4ee2-ac45-d40ed8e8fc67"
      }
    },
    {
      "class": "nodes.actions.general.SplitStreamActionImpl",
      "deprecated": false,
      "properties": {
        "nodeUUID": "d160febe-2fc5-4e12-8ac5-1dbe599f612f",
        "failedNodeUUID": "4abdbee9-c926-4822-8b0e-706359878c7d",
        "successNodeUUID": "d98d5923-6efd-4ac0-80e3-0127f9b44f76"
      }
    },
    {
      "class": "nodes.actions.general.SleepActionImpl",
      "deprecated": false,
      "properties": {
        "ms": 100,
        "nodeUUID": "d98d5923-6efd-4ac0-80e3-0127f9b44f76"
      }
    }
  ]
}

Findings im Stream

0
Keine Findings direkt diesem Stream zugeordnet.

Stream-Details

Extern-ID
69e8d4770a5acf262e607113
Event
EXPORT
Nodes
9
Deprecated-Warnung
Nein
Variablen
0

Vorgang läuft

0 s · Bitte warten. Der Vorgang wird verarbeitet.

    0 s · Es wird keine neue Snapshot-Analyse gestartet.

    Willkommen im Helmut Analyzer

    Neu hier? Unter Info & Hilfe findest du einen Quickstart für den Export aus Helmut4, den Import deiner Konfiguration und die Auswertung. Dort sind auch unsere Prüfregeln und Best Practices erklärt.

    Info & Hilfe öffnen