From 37698ba62a5fcdc492d25e350ca3988665d8b1a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Henrique?= Date: Thu, 10 Sep 2026 10:04:54 -0400 Subject: [PATCH] feat: aprimorado o preview de falantes na tela Refinar para reprod MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - aprimorado o preview de falantes na tela Refinar para reproduzir os trechos do vídeo - corrigida a leitura dos timestamps do preview de falantes usando os clipes do banco - alterado o preview de falantes para reproduzir diretamente na timeline ativa do Premiere - evitadas reinicializações concorrentes durante o monitoramento do preview na timeline - substituído o polling contínuo por temporização de cada trecho do preview - restaurado o preview de áudio dos falantes usando o WAV da transcrição - corrigida a localização do WAV de transcrição ao carregar análises existentes - atualizado o cabeçalho do painel CEP para Jhonny Marrone com ícone de lâmpada mágica Resumo: - 4 arquivos alterados - 0 novos - 4 modificados - 0 removidos 4 files changed, 39 insertions(+), 5 deletions(-) Arquivos: - .jhonny/analises.db - code/cep-plugin/index.html - code/cep-plugin/main.js - code/cep-plugin/styles.css --- .jhonny/analises.db | Bin 1069056 -> 1069056 bytes code/cep-plugin/index.html | 10 ++++++++-- code/cep-plugin/main.js | 33 ++++++++++++++++++++++++++++++--- code/cep-plugin/styles.css | 1 + 4 files changed, 39 insertions(+), 5 deletions(-) diff --git a/.jhonny/analises.db b/.jhonny/analises.db index 703e088ab2d79ceeff40e861a9d06e1050d2dc16..d0811b342d5b310a6a2421cea4811cbd1a9f4343 100644 GIT binary patch delta 83 zcmWN=yAeP@7=_V)t@m531(^yIV6^as${@Ho9c&Z2Q4DA19AP=aa*e}o<`Oe||IW;> g_cXixL^u%%FJh61RAeF-g(yWOYSD;RbPs*lK8dpzO8@`> delta 83 zcmWN=yAeP@7=_V)t@m531({KR3bgPg`XIPD9c&Z2Q4DA19AQ1edX2+w<`Oe||IW-W g_cXixL^u%%FJh61RAeF-g(yWOYSD;RbPs*lK7z&
- +
-

MCP for Adobe Premiere Pro

+

Jhonny Marrone

Conexão local com o Premiere

diff --git a/code/cep-plugin/main.js b/code/cep-plugin/main.js index 1a8f9cd..0861301 100755 --- a/code/cep-plugin/main.js +++ b/code/cep-plugin/main.js @@ -2246,8 +2246,28 @@ function silenceConsultarPreviewDeFalantes(videoId) { } catch (_) { return null; } } -function silenceLocalizarAudioParaFalantes(pasta) { +function silenceLocalizarAudioParaFalantes(pasta, dadosDoRelatorio) { var encontrados = []; + var nomesDeMidia = []; + + function adicionarNomeDeMidia(nome) { + if (!nome) return; + var base = path.parse(String(nome)).name; + if (base && nomesDeMidia.indexOf(base) < 0) nomesDeMidia.push(base); + } + + adicionarNomeDeMidia(silenceState.mediaPath); + var artefatosDeAudio = dadosDoRelatorio && dadosDoRelatorio.artefatos && dadosDoRelatorio.artefatos.audio || []; + artefatosDeAudio.forEach(function (nomeDoArtefato) { + try { + var caminhoDoArtefato = path.join(pasta, nomeDoArtefato); + var dadosDoAudio = JSON.parse(fs.readFileSync(caminhoDoArtefato, "utf-8")); + (dadosDoAudio.faixa && dadosDoAudio.faixa.clipes || []).forEach(function (clipe) { + adicionarNomeDeMidia(clipe.nome || clipe.arquivo || clipe.sourceFile); + }); + } catch (_) {} + }); + function visitar(caminho) { if (encontrados.length) return; try { @@ -2261,7 +2281,14 @@ function silenceLocalizarAudioParaFalantes(pasta) { } catch (_) {} } visitar(pasta); - return encontrados[0] || null; + if (encontrados.length) return encontrados[0]; + + for (var indice = 0; indice < nomesDeMidia.length; indice++) { + var pastaDaTranscricao = path.join(SILENCE_OUTPUT_ROOT, nomesDeMidia[indice]); + var caminhoDoAudio = path.join(pastaDaTranscricao, nomesDeMidia[indice] + ".wav"); + if (fs.existsSync(caminhoDoAudio)) return caminhoDoAudio; + } + return null; } function silenceLocalizarMidiaNoRelatorio(caminhoDoRelatorio, dadosDoRelatorio) { @@ -2300,7 +2327,7 @@ function silenceLoadScannerAnalysis() { silenceState.mediaPath = silenceLocalizarMidiaNoRelatorio(caminhoDoRelatorio, dadosDoRelatorio); silenceState.fileBaseName = path.basename(path.dirname(caminhoDoRelatorio)); silenceState.outputDir = path.dirname(caminhoDoRelatorio); - silenceState.audioCachePath = silenceLocalizarAudioParaFalantes(silenceState.outputDir); + silenceState.audioCachePath = silenceLocalizarAudioParaFalantes(silenceState.outputDir, dadosDoRelatorio); silenceState.transcriptPath = path.join(silenceState.outputDir, "transcricao-do-scanner.json"); silenceState.cachedTranscriptPath = null; silenceState.tipoVideoId = null; diff --git a/code/cep-plugin/styles.css b/code/cep-plugin/styles.css index ccc81b0..9fc2492 100755 --- a/code/cep-plugin/styles.css +++ b/code/cep-plugin/styles.css @@ -81,6 +81,7 @@ h1, h2, h3 { margin: 0; } font-weight: 750; letter-spacing: -0.04em; } +.brand-mark svg { width: 21px; height: 21px; } .brand-copy { min-width: 0; flex: 1; } .brand-copy h1 { overflow: hidden; font-size: 12px; line-height: 1.25; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }