Communitygithub.com

clip-anything

Usado quando o usuário deseja clipes, destaques, curtos ou reels cortados de uma gravação de gameplay, VOD de stream ou uma pasta de gravações. Executa a CLI local clip-anything: pré-visualiza as seleções, renderiza clipes 9:16, explica cada escolha a partir do report.json. Não serve para editar um clipe manualmente ou para fazer upload.

O que é clip-anything?

O `clip-anything` é uma skill autônoma que transforma gravações longas (arquivos únicos, múltiplos arquivos ou pastas representando uma sessão) nos melhores clipes verticais de destaque usando a CLI gratuita e local `clip-anything`. A skill é especialmente útil para criadores de conteúdo, streamers e jogadores que desejam extrair rapidamente momentos interessantes de streams ou gravações sem precisar de ferramentas complexas de edição. Ela funciona exclusivamente por meio de linha de comando, sem interface gráfica, sendo compatível com sistemas macOS, Linux e Windows (via terminal). A skill primeiro executa uma simulação (dry-run) para mostrar ao usuário quais clipes seriam cortados, incluindo tabela com rank, tempo, pontuação e componentes (como loudness, onsets de áudio, movimento, penalidade de tela estática, bônus de fala). Depois, se autorizado, renderiza os clipes no formato 9:16 vertical, ideal para redes sociais como TikTok, Instagram Reels e YouTube Shorts. Por fim, a skill lê o `report.json` gerado e explica para o usuário por que cada momento foi selecionado, destacando os sinais que contribuíram para a pontuação. Importante: a skill não faz upload de nenhum conteúdo, não edita manualmente clipes e não publica nada; o usuário é responsável por qualquer pós-processamento ou envio. Seu fluxo de trabalho garante privacidade e transparência, mostrando exatamente o que será cortado antes de renderizar, e oferece diversas opções de configuração, como número de clipes, pontuação mínima, duração mínima/máxima, tipo de crop, legendas automáticas (via Whisper local) e até re-ranking com modelos de visão locais via Ollama. As principais limitações incluem: momentos baseados em transcrição (com pouca ação) tendem a pontuar baixo; a barra de ação foi calibrada em poucos jogos; e gravações longas em 1080p60 podem levar tempo para analisar (cerca de 100s por hora de vídeo).

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/shreyassaw5394/clip-anything/tree/HEAD/.cursor/skills/clip-anything

Perguntar na sua IA favorita

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

Documentação

O que clip-anything faz?

Propósito

Transforma uma gravação longa (um arquivo, vários arquivos ou uma pasta que representa uma sessão) nos N melhores clipes verticais de destaque usando a CLI gratuita e local clip-anything. A skill controla a ferramenta, mostra o que será cortado antes de cortar e lê o relatório para que o usuário saiba por que cada momento foi selecionado. Ela nunca faz upload, publica ou envia imagens para lugar nenhum; a própria CLI não faz chamadas de rede, exceto por um download opcional e único do modelo Whisper, que pede permissão antes.

Pré-requisitos

  • uvx (do uv) ou pipx no PATH. A CLI é um pacote Python; uvx clip-anything a executa sem instalação.
  • ffmpeg e ffprobe no PATH. A CLI sai com código 3 e uma linha de instalação quando estão ausentes.
  • Uma gravação que o usuário possa indicar: .mp4 .mkv .mov .m4v .ts .m2ts .mts .webm .avi .flv, ou uma pasta com esses arquivos.

Instruções

Trabalhe a partir do diretório atual do usuário. Use os caminhos exatos fornecidos pelo usuário; coloque-os entre aspas. Não mova, renomeie ou exclua as gravações. Não instale nada além do que as etapas abaixo imprimirem como sugestão para o usuário executar.

Fluxo de Trabalho

(Use as etapas em ordem; uma etapa que não puder ser concluída é informada, não pulada.)

  1. Verifique as ferramentas. Execute command -v uvx || command -v pipx e command -v ffmpeg && command -v ffprobe. Se uvx e pipx estiverem ambos ausentes, imprima e pare: curl -LsSf https://astral.sh/uv/install.sh | sh (macOS/Linux) ou winget install astral-sh.uv (Windows). Se o ffmpeg estiver ausente, imprima e pare: brew install ffmpeg / sudo apt install ffmpeg / winget install Gyan.FFmpeg. Use pipx run clip-anything onde este arquivo disser uvx clip-anything se apenas o pipx existir.
  2. Resolva a entrada. Se o usuário nomeou um arquivo ou pasta, use-o. Se ele disse "minha gravação" sem caminho, procure por arquivos de vídeo no diretório atual (pesquise pelas extensões acima, do mais recente para o mais antigo). Pergunte apenas quando houver várias entradas plausíveis ou nenhuma; caso contrário, prossiga e diga qual caminho foi usado. Uma pasta é passada como está: a CLI a trata como uma sessão.
  3. Simulação primeiro, sempre. Execute uvx clip-anything "<entrada>" --dry-run --json 2>/dev/null (adicione --count N se o usuário nomeou um número). Analise o JSON da saída padrão. Mostre uma tabela curta: rank, start até end em mm:ss, duration_s, score, title se presente, e o componente principal de components. Se clips estiver vazio, diga isso claramente e leia warnings (um aviso below_floor significa que nada passou da barra de ação) antes de sugerir --min-score 0 ou um valor mais baixo.
  4. Renderize. A menos que o usuário tenha pedido apenas uma prévia, execute uvx clip-anything "<entrada>" com as mesmas opções, sem --dry-run e --json, para que a interface de progresso apareça. Adicione --yes apenas se o usuário disse que legendas são desejadas e concordou com o download único do modelo; caso contrário, deixe a CLI perguntar. Informe a pasta de saída (./clips por padrão, ou --out).
  5. Explique as seleções. Leia clips/report.json (leia o arquivo, ou use python3 -I -c sobre ele). Para cada clipe ok, dê uma linha: o intervalo de tempo, a pontuação e quais sinais o carregaram (components: loudness acima da linha de base, onsets de áudio, movimento, concordância áudio/movimento, penalidade de tela estática, bônus de fala quando presente). Mencione layout quando for facecam e captions quando verdadeiro. Liste cada entrada em warnings em termos simples; a ferramenta se degrada claramente e o usuário deve ouvir isso.
  6. Ofereça os ajustes, uma linha cada, apenas aqueles que se encaixam no que o usuário viu:
    • --count N mais ou menos clipes (é um máximo; sessões silenciosas retornam menos)
    • --min-score 0.3 abaixar a barra de ação; --min-score 0 classificar o arquivo contra si mesmo
    • --min 20 --max 60 limites de duração do clipe em segundos
    • --crop center corte central estático em vez de seguir a ação
    • --no-captions nunca queimar legendas; --facecam off sem pilha de webcam
    • --vision re-ranking local com Ollama e títulos (experimental; só se comunica com 127.0.0.1:11434)
    • --force sobrescrever clipes da última execução; --no-cache ignorar análise em cache Uma nova execução com ajustes diferentes leva segundos porque a análise fica em cache ao lado do vídeo.
  7. Divulgação. Quando legendas ou títulos estiverem presentes, diga uma vez: as legendas são transcrição automática (faster-whisper, local) e os títulos vêm de um modelo de visão local; ambos podem estar errados e devem ser verificados antes de publicar.

Exemplos

  • "Crie 5 curtos da stream de ontem à noite, está em ~/Videos/obs/" → etapa 1, passe a pasta, --count 5 simulação, mostre a tabela, renderize, explique.
  • "Por que ele selecionou uma tela de carregamento?" → abra report.json, mostre os components daquele clipe (um valor alto de card significa que a penalidade de tela estática foi acionada, mas onsets altos ainda venceram), sugira --min-score 0.6 ou um w_card mais alto em um TOML --config.
  • "Só me mostre o que cortaria, não renderize" → etapas 1 a 3 apenas.

Limitações

  • Momentos baseados em transcrição (uma piada sem ação) pontuam baixo por design; a ferramenta classifica ação, fala é um bônus.
  • A barra de ação foi calibrada em dois jogos; um jogo não visto pode retornar menos clipes do que o solicitado. Diga isso em vez de forçar clipes com --min-score 0 sem ser solicitado.
  • Fontes 1080p60 analisam aproximadamente 100 s por hora; um arquivo de várias horas é uma espera, não uma trava.
  • A skill não edita clipes, escolhe miniaturas ou publica em lugar nenhum. Publicar é etapa do usuário.

Solução de Problemas

  • Código de saída 2: entrada ruim (caminho ausente, arquivo não suportado, pasta sem vídeos). Mostre a mensagem da CLI.
  • Código de saída 3: ffmpeg ou ffprobe ausente. Imprima a linha de instalação para o sistema operacional do usuário da etapa 1.
  • Código de saída 1: nada renderizado. Leia warnings no JSON da simulação; geralmente below_floor.
  • Legendas escritas como arquivo .ass lateral em vez de queimadas: a construção do ffmpeg não tem libass (fórmula padrão do Homebrew). Uma construção ffmpeg-full no PATH resolve; todo o resto continua funcionando.
  • --vision não teve efeito: Ollama não está rodando ou não tem modelo de visão; a execução continua apenas com ação e deixa um aviso.

Habilidades Relacionadas