Communitygithub.com

skulitom/cutbolt-plugin

Cria legendas a partir de transcrições vinculadas à origem em uma timeline editada do Cutbolt e anexa clipes de cena editáveis sem um filme intermediário.

O que é cutbolt-plugin?

Este plugin para o **Cutbolt** permite gerar legendas diretamente a partir de transcrições alinhadas à timeline de edição, eliminando a necessidade de renderizar um filme intermediário. O fluxo de trabalho começa com o comando `captions.draft`, que processa um documento de transcrição (transcript.json) e um projeto salvo para produzir um rascunho de legendas com sugestões de texto e timing. Após revisão e correção de erros de reconhecimento, o usuário renderiza as legendas com `job.start`, especificando layout (fonte, tamanho, retângulo de legenda, etc.) e evitando overflow de texto. O resultado é aplicado à timeline via `session.apply`, que cria ou substitui clipes de legenda na faixa de legendas, mantendo as receitas das cenas originais para edição posterior. O plugin é compatível com Windows e Linux, requer FFmpeg/ffprobe instalado externamente e não inclui mecanismos de reconhecimento de fala, fontes ou modelos; o reconhecimento de fala precisa de configuração separada. A principal vantagem é a agilidade e flexibilidade: legendas são geradas e ajustadas sem perda de qualidade ou necessidade de re-renderização completa.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/skulitom/cutbolt-plugin/tree/HEAD/skills/captions

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Legendar o corte atual

Use um projeto salvo com faixas posicionadas e um documento de transcrição em transcript.json. $PROJECT_ID e $REVISION referem-se ao corte atual. Rascunho após edições de tempo. Substitua $PLACEHOLDERS por valores reais; envie as chamadas cutbolt_* listadas sem comando, ou use cutbolt_run com comando/argumentos. Mantenha a renderização bloqueante em job.start.

{"command":"captions.draft","project":{"project_id":"$PROJECT_ID"},"transcripts":[{"file":"transcript.json"}]}

Revise o texto das indicações e o tempo no documento retornado, depois mantenha-o como $CAPTION_DOCUMENT. Corrija erros de reconhecimento antes de renderizar. $FONT é um objeto de identidade/caminho de fonte (por exemplo {"path":"font.ttf"}) ou um nome instalado sem ambiguidade de fonts.find. $FONT_SIZE, $LINE_HEIGHT e $CAPTION_RECT são valores de layout em pixels que se ajustam ao projeto. Escolha espaço suficiente para as indicações reais. O excesso é rejeitado, para que texto cortado não passe despercebido.

{"command":"job.start","request_id":"caption-render","run":"captions.render","arguments":{"document":"$CAPTION_DOCUMENT","project":{"project_id":"$PROJECT_ID"},"layouts":{"default":{"fonts":["$FONT"],"size":"$FONT_SIZE","rect":"$CAPTION_RECT","line_height":"$LINE_HEIGHT","letter_spacing":0,"wrap":"none","overflow":"reject"}},"output":"caption-edits.json","mode":"generated","track_id":"captions","asset_id":"caption"}}

$JOB_ID é o ticket retornado.

{"command":"job.wait","job_id":"$JOB_ID","timeout_seconds":120}

Continue somente quando o status for 'completado'. Mantenha result.operations como $CAPTION_OPERATIONS (uma referência de arquivo) e result.expected_revision como $CAPTION_REVISION. Aplique essa proposta na revisão registrada. O comando cria a faixa de legendas se ela estiver ausente. Se ela já tiver legendas sobrepostas, remova explicitamente os clipes antigos pretendidos e prepare novamente contra o novo cabeçalho. Não duplique legendas nem sobrescreva gráficos não relacionados.

{"command":"session.apply","project_id":"$PROJECT_ID","expected_revision":"$CAPTION_REVISION","request_id":"attach-captions","operations":"$CAPTION_OPERATIONS"}

Mantenha a nova revisão. Exporte e inspecione as legendas reais em momentos representativos, incluindo a primeira e a última indicação. Uma edição de tempo após esta etapa precisa de legendas regeneradas. Os clipes salvos retêm receitas de cena editáveis e renderizam diretamente com o material de origem; nenhum filme de legenda intermediário é compilado. Mantenha o documento de legenda para edições futuras de texto/tempo.

Para uma fonte local fornecida, use um objeto de caminho; strings nomeiam famílias de fontes instaladas. Fontes instaladas ausentes ou ambíguas precisam de uma identidade utilizável de fonts.find. Para estouro de texto, ajuste o layout da caixa/fonte/indicação e use um novo nome de arquivo de saída. Para uma revisão desatualizada, verifique se o tempo da timeline mudou antes de anexar. Reutilize o ID de solicitação de uma edição incerta e inspecione session.receipt; job.wait retornar um ticket não é prova de uma renderização concluída.

Este fluxo de trabalho funciona no Windows e Linux com FFmpeg/ffprobe externo. O reconhecimento de fala, quando necessário, requer um runtime e modelo local configurados separadamente. Gravação e decodificação por hardware não têm backend Linux. O plugin não inclui mecanismo, fontes, modelos ou ferramentas de mídia.

Habilidades Relacionadas