feat: criada a aba Tipos de vídeo com cinco perfis editoriais pré-
- criada a aba Tipos de vídeo com cinco perfis editoriais pré-cadastrados e catálogo local pronto para integração com o Schedule Light - ampliado o cadastro vertical dos perfis com objetivos, narrativa, emoção, prioridades, formato, áudio e regras para IA - criado plano JSON para resumir a entrevista jornalística em até três minutos Resumo: - 4 arquivos alterados - 1 novos - 3 modificados - 0 removidos 3 files changed, 318 insertions(+), 3 deletions(-) Arquivos: - code/cep-plugin/index.html - code/cep-plugin/main.js - code/cep-plugin/styles.css - plano-resumo-video.json
This commit is contained in:
@@ -34,6 +34,9 @@
|
||||
<button class="tab-button" id="tabBtnAnalises" role="tab" aria-selected="false" aria-controls="tabAnalises" onclick="switchTab('analises')" type="button">
|
||||
<span class="tab-icon" aria-hidden="true">⎘</span>Análises
|
||||
</button>
|
||||
<button class="tab-button" id="tabBtnTiposVideo" role="tab" aria-selected="false" aria-controls="tabTiposVideo" onclick="switchTab('tipos-video')" type="button">
|
||||
<span class="tab-icon" aria-hidden="true">▦</span>Tipos de vídeo
|
||||
</button>
|
||||
<button class="tab-button" id="tabBtnBridge" role="tab" aria-selected="false" aria-controls="tabBridge" onclick="switchTab('bridge')" type="button">
|
||||
<span class="tab-icon" aria-hidden="true">⇄</span>Conexão
|
||||
</button>
|
||||
@@ -374,6 +377,76 @@
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<!-- =========================== TIPOS DE VÍDEO =========================== -->
|
||||
<div class="tab-panel" id="tabTiposVideo" role="tabpanel" aria-labelledby="tabBtnTiposVideo" hidden>
|
||||
<p class="tab-intro">Cadastre o padrão editorial que a IA e o editor devem seguir para cada tipo de vídeo. As alterações ficam salvas no catálogo local do Schedule Light.</p>
|
||||
|
||||
<section class="card">
|
||||
<div class="card-head">
|
||||
<h2>Catálogo de tipos</h2>
|
||||
<button class="link-button" onclick="tipoVideoNovo()" type="button">+ Novo tipo</button>
|
||||
</div>
|
||||
<div id="tiposVideoLista" class="video-type-list" role="list" aria-label="Tipos de vídeo cadastrados"></div>
|
||||
</section>
|
||||
|
||||
<section class="card" id="tipoVideoEditorCard" hidden>
|
||||
<div class="card-head"><h2 id="tipoVideoEditorTitulo">Novo tipo de vídeo</h2><span class="card-kicker" id="tipoVideoEditorStatus">Rascunho</span></div>
|
||||
<section class="profile-section"><div class="profile-section-head"><span>1</span><div><strong>Identificação</strong><small>Nome, categoria e status do perfil.</small></div></div>
|
||||
<label class="field-label" for="tipoVideoNome">Nome do perfil</label><input class="text-field" id="tipoVideoNome" type="text" placeholder="Ex.: Depoimento de cliente">
|
||||
<label class="field-label" for="tipoVideoDescricao">Descrição</label><textarea id="tipoVideoDescricao" rows="2" placeholder="Para que este vídeo existe e qual resultado deve provocar?"></textarea>
|
||||
<div class="field-grid"><div><label class="field-label" for="tipoVideoCategoria">Categoria</label><select class="select-field" id="tipoVideoCategoria"><option>Depoimento</option><option>Entrevista</option><option>Storytelling</option><option>Educativo</option><option>Comercial</option><option>Institucional</option></select></div><div><label class="field-label" for="tipoVideoAtivo">Status</label><label class="checkbox-field"><input id="tipoVideoAtivo" type="checkbox"><span>Perfil ativo</span></label></div></div>
|
||||
</section>
|
||||
<section class="profile-section"><div class="profile-section-head"><span>2</span><div><strong>Objetivo</strong><small>O resultado que o vídeo deve provocar.</small></div></div>
|
||||
<label class="field-label" for="tipoVideoObjetivo">Objetivo principal</label><input class="text-field" id="tipoVideoObjetivo" type="text" placeholder="Ex.: Gerar confiança e credibilidade">
|
||||
<label class="field-label" for="tipoVideoObjetivoSecundario">Objetivo secundário</label><input class="text-field" id="tipoVideoObjetivoSecundario" type="text" placeholder="Ex.: Criar conexão emocional">
|
||||
<label class="field-label" for="tipoVideoPublico">Público-alvo</label><input class="text-field" id="tipoVideoPublico" type="text" placeholder="Ex.: Clientes em potencial">
|
||||
<label class="field-label" for="tipoVideoMensagem">Mensagem principal</label><textarea id="tipoVideoMensagem" rows="2" placeholder="Qual mensagem precisa permanecer depois que o vídeo terminar?"></textarea>
|
||||
</section>
|
||||
<section class="profile-section"><div class="profile-section-head"><span>3</span><div><strong>Narrativa</strong><small>Como a história deve ser organizada.</small></div></div>
|
||||
<label class="field-label" for="tipoVideoTipoNarrativa">Tipo de narrativa</label><select class="select-field" id="tipoVideoTipoNarrativa"><option>História pessoal</option><option>Pergunta e resposta</option><option>Jornada / transformação</option><option>Explicação passo a passo</option><option>Problema → solução → benefício</option></select>
|
||||
<label class="field-label" for="tipoVideoFocoNarrativo">Foco narrativo</label><input class="text-field" id="tipoVideoFocoNarrativo" type="text" placeholder="Ex.: Problema → solução → resultado">
|
||||
<label class="checkbox-field"><input id="tipoVideoStorytelling" type="checkbox"><span>Priorizar storytelling</span></label>
|
||||
<label class="field-label" for="tipoVideoEstrutura">Estrutura narrativa</label><textarea id="tipoVideoEstrutura" rows="3" placeholder="Ex.: Gancho → contexto → desenvolvimento → conclusão."></textarea>
|
||||
</section>
|
||||
<section class="profile-section"><div class="profile-section-head"><span>4</span><div><strong>Emoção</strong><small>Qual sensação deve ser construída.</small></div></div>
|
||||
<label class="field-label" for="tipoVideoEmocao">Objetivo emocional</label><input class="text-field" id="tipoVideoEmocao" type="text" placeholder="Confiança, empatia, curiosidade…">
|
||||
<label class="field-label" for="tipoVideoIntensidade">Intensidade emocional <output id="tipoVideoIntensidadeValor">3 / 5</output></label><input id="tipoVideoIntensidade" type="range" min="1" max="5" step="1" value="3" oninput="tipoVideoAtualizarIntensidade()">
|
||||
<label class="field-label" for="tipoVideoTom">Tom emocional</label><select class="select-field" id="tipoVideoTom"><option>Positivo</option><option>Inspirador</option><option>Íntimo</option><option>Informativo</option><option>Urgente</option><option>Contemplativo</option></select>
|
||||
<label class="field-label" for="tipoVideoConstrucaoEmocao">Como construir a emoção</label><textarea id="tipoVideoConstrucaoEmocao" rows="2" placeholder="Ex.: Pausas naturais, B-roll real e trilha discreta."></textarea>
|
||||
</section>
|
||||
<section class="profile-section"><div class="profile-section-head"><span>5</span><div><strong>Formato</strong><small>Onde e em quanto tempo o vídeo será consumido.</small></div></div>
|
||||
<label class="field-label" for="tipoVideoCanais">Formato / canal</label><input class="text-field" id="tipoVideoCanais" type="text" placeholder="Instagram Reels, TikTok, YouTube…">
|
||||
<label class="field-label" for="tipoVideoProporcao">Orientação preferencial</label><select class="select-field" id="tipoVideoProporcao"><option value="9:16">9:16 — vertical</option><option value="1:1">1:1 — quadrado</option><option value="16:9">16:9 — horizontal</option><option value="adaptavel">Adaptável</option></select>
|
||||
<div class="field-grid"><div><label class="field-label" for="tipoVideoDuracaoMinima">Duração mínima (segundos)</label><input class="text-field" id="tipoVideoDuracaoMinima" type="number" min="0" step="1"></div><div><label class="field-label" for="tipoVideoDuracao">Duração máxima (segundos)</label><input class="text-field" id="tipoVideoDuracao" type="number" min="1" step="1"></div></div>
|
||||
</section>
|
||||
<section class="profile-section"><div class="profile-section-head"><span>6</span><div><strong>Prioridades</strong><small>Ordem de importância quando houver conflito.</small></div></div>
|
||||
<div id="tipoVideoPrioridades" class="priority-list"></div>
|
||||
</section>
|
||||
<section class="profile-section"><div class="profile-section-head"><span>7</span><div><strong>Elementos de edição</strong><small>O que deve ou não aparecer na montagem.</small></div></div>
|
||||
<label class="checkbox-field"><input id="tipoVideoUsaBroll" type="checkbox"><span>Usar B-roll</span></label><label class="checkbox-field"><input id="tipoVideoUsaLegendas" type="checkbox"><span>Usar legendas</span></label><label class="checkbox-field"><input id="tipoVideoUsaTextos" type="checkbox"><span>Usar textos e títulos</span></label><label class="checkbox-field"><input id="tipoVideoUsaGraficos" type="checkbox"><span>Usar gráficos ou telas explicativas</span></label><label class="checkbox-field"><input id="tipoVideoUsaZoom" type="checkbox"><span>Usar zooms e reenquadramentos</span></label>
|
||||
<label class="field-label" for="tipoVideoCortes">Critério de cortes</label><textarea id="tipoVideoCortes" rows="3" placeholder="O que cortar, preservar ou acelerar?"></textarea>
|
||||
<label class="field-label" for="tipoVideoBroll">Orientação de B-roll</label><textarea id="tipoVideoBroll" rows="3" placeholder="Quando usar imagens de apoio e com qual função?"></textarea>
|
||||
<label class="field-label" for="tipoVideoTexto">Textos, títulos e legendas</label><textarea id="tipoVideoTexto" rows="3" placeholder="Legendas, palavras-chave, títulos, CTA…"></textarea>
|
||||
</section>
|
||||
<section class="profile-section"><div class="profile-section-head"><span>8</span><div><strong>Áudio</strong><small>Como a voz, música e efeitos devem conviver.</small></div></div>
|
||||
<label class="checkbox-field"><input id="tipoVideoUsaMusica" type="checkbox"><span>Usar música</span></label><label class="field-label" for="tipoVideoIntensidadeMusica">Intensidade da música</label><input id="tipoVideoIntensidadeMusica" type="range" min="0" max="100" step="5" value="30" oninput="tipoVideoAtualizarIntensidadeMusica()"><output id="tipoVideoIntensidadeMusicaValor">30%</output>
|
||||
<label class="field-label" for="tipoVideoPrioridadeVoz">Prioridade da voz</label><select class="select-field" id="tipoVideoPrioridadeVoz"><option>Alta</option><option>Muito alta</option><option>Equilibrada</option></select>
|
||||
<label class="field-label" for="tipoVideoSom">Tratamento de áudio</label><textarea id="tipoVideoSom" rows="3" placeholder="Trilha, volume, pausas, limpeza e ênfase."></textarea>
|
||||
</section>
|
||||
<section class="profile-section"><div class="profile-section-head"><span>9</span><div><strong>Regras e instruções para IA</strong><small>Critérios que devem orientar o plano de edição.</small></div></div>
|
||||
<label class="field-label" for="tipoVideoDiretriz">Regras de edição</label><textarea id="tipoVideoDiretriz" rows="5" placeholder="Uma regra por linha. Ex.: Preservar a naturalidade da fala."></textarea>
|
||||
<label class="field-label" for="tipoVideoRestricoes">Restrições de edição</label><textarea id="tipoVideoRestricoes" rows="3" placeholder="O que a IA não deve fazer?"></textarea>
|
||||
<label class="field-label" for="tipoVideoQualidade">Critérios de qualidade</label><textarea id="tipoVideoQualidade" rows="3" placeholder="Como saberemos que o resultado ficou bom?"></textarea>
|
||||
</section>
|
||||
<div class="button-row">
|
||||
<button class="button button-primary" onclick="tipoVideoSalvar()" type="button">Salvar tipo</button>
|
||||
<button class="button button-ghost" onclick="tipoVideoCancelar()" type="button">Cancelar</button>
|
||||
<button class="button button-ghost" onclick="tipoVideoCopiarJson()" type="button">Copiar JSON para IA</button>
|
||||
</div>
|
||||
</section>
|
||||
<p class="field-help" id="tiposVideoStatus">—</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- ============================== CONEXÃO ============================== -->
|
||||
|
||||
Reference in New Issue
Block a user