Files
jhonny-editor/code/engine/gerar_relatorio_timeline.py
T
João Henrique b541f502ba feat: initial commit - Jhonny Editor
- Adicionado estrutura completa do projeto
- Configurado MCP server para Premiere Pro
- Adicionado documentação e skills
- Configurado Gitignore para o projeto
2026-09-08 09:59:31 -04:00

37 lines
2.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import json
from pathlib import Path
from engine.integracoes.midia import ExtracaoDeAudio
from engine.integracoes.groq import ProviderDeTranscricaoGroq
from engine.integracoes.premiere.cliente_mcp import ClienteMCPPorStdio
from engine.integracoes.premiere.conversores import ConversorDeTimeline
from engine.scanner.transcricao_da_timeline import TranscricaoDaTimeline
ARQUIVO = Path('/Volumes/Merongo/PROJETOS/03 - Mastopexia/0E6A8290.MP4')
CHAVE = json.loads((Path.home()/'.premiere-mcp/config.json').read_text()).get('groqApiKey','')
SAIDA = Path('/Volumes/Merongo/SISTEMAS/GENIAL SISTEMAS/Jhonny/code/relatorios')
cliente = ClienteMCPPorStdio(['node', 'dist/index.js'])
cliente.conectar()
bruta = cliente.chamar('get_active_sequence', {})['structuredContent']['data']
timeline = ConversorDeTimeline().converter(bruta)
for faixa in timeline.faixas:
for clipe in faixa.clipes:
if clipe.nome == '0E6A8290.MP4': clipe.arquivo = str(ARQUIVO)
provider = ProviderDeTranscricaoGroq(CHAVE)
transcricoes = TranscricaoDaTimeline(provider, ExtracaoDeAudio(duracao_da_parte=600), SAIDA/'audio').executar(timeline)
linhas = [f'# Relatório de transcrição — {timeline.nome}', '', f'Duração: {bruta["end"]:.3f} s',
f'Clipes processados: {sum(len(f.clipes) for f in timeline.faixas if f.tipo == "video")}', '']
for faixa in timeline.faixas:
if faixa.tipo != 'video': continue
for clipe in faixa.clipes:
if clipe.nome != '0E6A8290.MP4': continue
resultado = next((r for r in transcricoes if r.identificador_do_clipe == clipe.identificador), None)
intervalo = clipe.intervalo_na_origem
texto = resultado.texto if resultado else ''
linhas += [f'## {clipe.identificador} — {clipe.intervalo_na_timeline.inicio:.3f}s–{clipe.intervalo_na_timeline.fim:.3f}s',
f'Origem: {intervalo.inicio:.3f}s–{intervalo.fim:.3f}s', '', texto or '_Sem fala detectada._', '']
(SAIDA/'transcricao-timeline.md').write_text('\n'.join(linhas), encoding='utf-8')
print(SAIDA/'transcricao-timeline.md')