Tutorial
Faça o Claude Code cortar vlogs automaticamente: um fluxo replicável
Pieter Levels entregou um material de viagem ao Claude Code, que o editou em um vídeo final de cerca de 10 minutos. Veja quais ferramentas ele usou e como montar esse fluxo você mesmo.
A abordagem deste artigo vem do teste real compartilhado por Pieter Levels (@levelsio) no X em novembro de 2026. Publicação original: https://x.com/levelsio/status/2116959423117857026 . Resposta em que ele complementa a explicação da cadeia de ferramentas: https://x.com/levelsio/status/2116961807315169718 . Abaixo está nossa análise e explicação de replicação desse compartilhamento.
Pieter Levels entregou material gravado com DJI ao Claude Code, pediu que editasse em um vlog de cerca de 10 minutos, fez apenas alguns ajustes e só depois soube quais ferramentas ele usou especificamente.
Vale a pena destrinchar isso, porque transforma um vago "IA que edita vídeo" em um fluxo de engenharia replicável.
O que ele realmente fez
A ordem de toda a cadeia é esta:
- Transcrição: usar mlx-whisper para converter o áudio em texto com timestamps
- Extração de frames: capturar imagens em intervalos fixos e montá-las em uma grade de imagens
- Separação de falantes: o modelo ECAPA do SpeechBrain distingue quem disse cada frase
- Decisão: o Claude lê simultaneamente o texto transcrito e a grade de imagens e decide quais trechos manter
- Saída: gerar uma lista de edição em JSON, não cortar o vídeo diretamente
- Renderização: cortar e concatenar com ffmpeg conforme a lista
- Complementos: OpenCV com YuNet para miniaturas de rostos, Pillow para desenhar os créditos iniciais
O ponto-chave está nos passos 4 e 5. O que o modelo faz não é "cortar vídeo", mas "ler duas fontes de dados estruturados e produzir uma decisão de edição".
Por que esse design funciona
Dar o vídeo diretamente ao modelo não funciona? Tecnicamente até funciona, mas o custo sairia do controle. Para uma hora de material medida em frames, o número de tokens seria astronômico.
Este fluxo faz duas compressões:
A primeira compressão é no lado do áudio. Uma hora de narração vira cerca de dez mil palavras em texto, e ler isso é barato para o modelo. Os timestamps são preservados, então ele sabe onde cada frase está no vídeo.
A segunda compressão é no lado da imagem. A extração de frames em intervalos regulares forma uma grade, e em uma única imagem é possível ver quadros de vários momentos. O modelo olha a imagem e julga "este trecho é uma caminhada" ou "este trecho tem paisagem", sem precisar ver frames contínuos.
Depois das duas compressões, um material de várias horas vira uma entrada que o modelo consegue ler de uma vez, e o custo de decisão cai para uma faixa aceitável.
Se você for montar o seu, a ordem importa
Primeiro passo: faça bem a transcrição
Separe a faixa de áudio e converta em texto com timestamps. A qualidade desta etapa determina todos os julgamentos seguintes.
Em vlogs com predominância de narração, a precisão da transcrição afeta diretamente se o modelo consegue identificar o limite de "esta fala terminou". Em materiais com muito ruído de fundo, a transcrição perde palavras, e os trechos cortados pelo modelo com base nela tendem a terminar no meio da frase.
Segundo passo: projete bem o formato da lista de edição
O que o modelo deve produzir não é linguagem natural como "manter de 00:12 a 01:47", mas um JSON com schema fixo:
{
"segments": [
{"start": 12.4, "end": 107.2, "reason": "chegada à pousada, apresentação do quarto"},
{"start": 340.1, "end": 402.8, "reason": "timelapse do pôr do sol no mar"}
],
"total_duration": 596.1
}
Com um formato fixo, o script consegue consumir diretamente, sem precisar interpretar linguagem natural. Incluir o campo reason permite que, na revisão humana, se saiba por que cada trecho foi mantido.
Terceiro passo: deixe a renderização com o ffmpeg
O modelo só produz a decisão; o corte e a concatenação ficam com o ffmpeg. Assim, cada etapa pode ser depurada separadamente: se a decisão de edição estiver errada, altere o prompt ou troque de modelo; se a imagem estiver errada, verifique os parâmetros do ffmpeg.
Um exemplo mínimo de cortar conforme a lista e depois concatenar:
# Cortar segmento por segmento conforme a lista
ffmpeg -ss 12.4 -to 107.2 -i input.mp4 -c copy seg_01.mp4
# Concatenar
printf "file 'seg_01.mp4'\nfile 'seg_02.mp4'\n" > list.txt
ffmpeg -f concat -safe 0 -i list.txt -c copy out.mp4
-c copy não recodifica, então é várias ordens de grandeza mais rápido. A condição é que os parâmetros de codificação de cada segmento sejam iguais, por isso unifique uma vez os parâmetros de codificação antes de cortar.
Quarto passo: entregue a decisão ao modelo
Basta conectar a HiAPI nesta etapa. A configuração do Claude Code está em Conectar Claude Code e Codex à HiAPI; depois de configurar a Key, a inferência executada no Claude Code usará o Opus 5.5 (entrada $2.02, saída $10.08 por milhão de tokens).
Para uma hora de material, texto transcrito mais algumas dezenas de grades de imagens, a entrada fica em cerca de vinte a trinta mil tokens. Pelo preço de entrada do Opus 5.5, o custo de uma decisão completa fica entre alguns centavos e uma dezena de centavos. Comparado ao custo de mão de obra para editar uma hora manualmente, essa ordem de grandeza dispensa hesitação.
Troque o cenário e você pode reutilizar
A mesma estrutura, trocando a fonte de entrada, vira outro produto:
| Cenário | Entrada | Objetivo da edição |
|---|---|---|
| Cortes de podcast | Áudio longo + transcrição | Selecionar pontos de vista que funcionem como trechos independentes |
| Retrospectiva de reunião | Gravação de tela + transcrição | Manter decisões e tarefas pendentes |
| Edição refinada de curso | Vídeo de aula | Remover pausas e repetições |
| Compilação de entrevistas | Múltiplas câmeras | Reorganizar por tema |
Os prompts de cada categoria são diferentes, mas o esqueleto "transcrição → compressão → decisão → renderização" é o mesmo.
Armadilhas que você vai encontrar
Deslocamento de timestamps. A base de timestamps de transcrição de ferramentas diferentes pode variar dezenas de milissegundos, e o início do trecho cortado pode engolir palavras. A solução é calibrar primeiro com um trecho curto de material.
O modelo tende a manter demais. Na primeira execução, muitas vezes o corte não é agressivo o suficiente e a saída fica mais longa que a duração alvo. No prompt, informe explicitamente a duração alvo e diga que, se ultrapassar, é preciso selecionar de novo.
O ponto de corte cai no meio da frase. Se der ao modelo apenas timestamps, ele pode cortar no meio de uma frase. Passe também os limites de frase da transcrição e peça que ele escolha pelos limites de frase.
Recodificação demorada. Quando os parâmetros de codificação dos segmentos não são iguais, -c copy falha e degrada para recodificação, e uma hora de material demora muito para processar. A etapa de unificar os parâmetros não pode ser omitida.
Perguntas frequentes
É obrigatório usar o Claude Code?
Não necessariamente. Qualquer modelo capaz de ler textos longos e produzir JSON conforme um schema pode fazer esta etapa de decisão. A vantagem do Claude Code é que ele mesmo escreve scripts, executa o ffmpeg, olha o resultado e ajusta, economizando o tempo de encadear o fluxo manualmente.
Dá para rodar mlx-whisper sem chip da Apple?
Não, o mlx é um framework da Apple. Em máquinas não Apple, troque por faster-whisper ou whisper.cpp; a lógica é a mesma.
Quanto tempo leva o fluxo inteiro?
A transcrição do material ocupa a maior parte; uma hora de material em chips da série M leva cerca de dez a algumas dezenas de minutos, dependendo do tamanho do modelo. A etapa de decisão leva alguns minutos. A renderização com -c copy é rápida.
O resultado pode ser usado diretamente?
Segundo o próprio Levels, ele fez alguns ajustes. O fluxo automático resolve a parte que mais consome tempo: "selecionar dez minutos de várias horas de material". O ritmo dos detalhes e as transições ainda são mais rápidos de ajustar manualmente.
Conclusão principal
O núcleo que faz este fluxo funcionar não é a inteligência do modelo, mas transformar o vídeo em dados que o modelo consegue ler. A transcrição comprime o áudio, a grade de frames comprime a imagem, o modelo só toma a decisão de selecionar trechos e a renderização volta para o ffmpeg. Se quiser replicar, comece pela etapa "converter o material em texto com timestamps"; o resto é trabalho de engenharia.
Fontes
- Compartilhamento original: Pieter Levels (@levelsio), https://x.com/levelsio/status/2116959423117857026
- Complemento sobre a cadeia de ferramentas (resposta do autor): https://x.com/levelsio/status/2116961807315169718
- A análise do fluxo, os exemplos de código e as observações deste artigo foram organizados pela HiAPI e não fazem parte do conteúdo do autor original
Artigos relacionados
Ver todos os artigos →-
Tutorial
Casos do Recraft Creative Upscale: upscale de paisagens e aquarela
Veja as mudanças de textura na cabana, no lago e na cidade em aquarela, diferencie o resultado completo da prévia e verifique os detalhes redesenhados.
-
Tutorial
Chave de API da OpenAI inválida: diagnóstico de 401, variáveis de ambiente e configuração de projeto
Diferencie 401, 403 e 429 da OpenAI, verifique variáveis de ambiente e configurações de organização e projeto, e valide as credenciais com uma requisição somente leitura.
-
Tutorial
Coleção de prompts do Kling 4.0: 6 cenas para copiar e gerar vídeos diretamente
Produto de e-commerce, comida, paisagem de viagem, cena cotidiana, plano vazio com som e imagem para vídeo: cada cena traz um vídeo real, o prompt completo e um link de preenchimento com um clique.