Communitygithub.com

jevreel: faça perguntas sobre vídeos

Pesquise e entenda vídeos sem embeddings. Use quando o usuário perguntar sobre o conteúdo de um arquivo de vídeo ou URL de vídeo — encontrar momentos ('quando X acontece'), encontrar uma pessoa ou objeto a partir de uma foto, ler o que está na tela em um momento, obter o que é dito, rastrear as mesmas coisas em todo o vídeo, ou uma resposta sobre o vídeo inteiro. Funciona através das ferramentas MCP do jevreel ou da CLI jevreel.

O que é jevreel: faça perguntas sobre vídeos?

jevreel é uma skill para agentes de IA (como Claude Code, Cursor, Codex) que permite pesquisar e extrair informações de arquivos de vídeo ou URLs sem a necessidade de embeddings. Ele funciona como um 'investigador visual', analisando vídeos quadro a quadro em folhas de contato e utilizando o modelo de decisão rápida Jev (da TypeSafe) para examinar essas folhas em paralelo e identificar os melhores momentos. A skill suporta perguntas sobre conteúdo visual (o que aparece na tela), fala (transcrição) ou ambos, além de permitir encontrar objetos/pessoas a partir de fotos, ler texto em tela, e fazer perguntas sobre o vídeo inteiro. Ela é útil para qualquer desenvolvedor ou agente que precise entender o conteúdo de vídeos de forma programática, seja para sumarização, busca de momentos específicos, verificação de conformidade ou análise de segurança. jevreel funciona via MCP (Model Context Protocol) ou CLI, e requer `ffmpeg`/`ffprobe` e opcionalmente a chave de API da TypeSafe para acesso ao modelo Jev. Os resultados incluem probabilidades e timestamps, e o agente principal (você) é responsável por interpretar essas saídas e fornecer respostas contextuais ao usuário.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/DeepAleph/jevreel/tree/HEAD/skills/jevreel

Perguntar na sua IA favorita

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

Documentação

O que jevreel: faça perguntas sobre vídeos faz?

jevreel organiza um vídeo em folhas de contato com um quadro por segundo e faz com que Jev, o modelo de decisão rápido da TypeSafe, examine cada folha em paralelo, depois reavalie as melhores janelas com quadros completos. Você (o agente principal) então analisa o que foi encontrado. Jev fornece respostas tipadas e probabilidades, nunca descrições: ler, descrever e concluir é seu trabalho.

Verificação de configuração

  • TYPESAFE_API_KEY deve estar definida para qualquer coisa que pergunte a Jev (indexação com timeline, ask, find, locate, whole, lenses). Zoom, transcrições e consultas de timeline funcionam sem ela.
  • ffmpeg e ffprobe devem estar no PATH.
  • URLs precisam de jevreel[url]; vídeos sem legendas precisam de jevreel[asr] para uma transcrição.

Fluxo de trabalho

  1. Indexe uma vez. MCP index_video(source) ou jevreel index <arquivo-ou-url>. Chamadas posteriores usam o id retornado, o caminho ou o título ("tears of steel"). Reindexar um vídeo já indexado retorna imediatamente.
  2. Encontre momentos. ask_video(video, consulta) / jevreel ask <id> "<consulta>".
    • Escreva a consulta como uma descrição simples do que seria visível ou dito: "um gráfico de barras em um slide", "alguém abre um laptop", "o palestrante menciona preços".
    • Uma coisa por consulta. Divida "um carro vermelho e um cachorro" em duas perguntas; Jev é mais preciso em perguntas simples.
    • mode: visual (apenas na tela), speech (apenas transcrição, mais barato), both ou auto.
    • Restrinja com start/end quando o usuário nomear uma parte do vídeo.
  3. Encontre a partir de uma foto. find_in_video(video, caminho_da_imagem, nota="pessoa") / jevreel find <id> photo.jpg --note pessoa.
  4. Olhe antes de responder. Acertos são pistas, não fatos. Acertos verificados vêm com frame, uma imagem em resolução total do momento: olhe para ela. zoom_video(video, start, end) / jevreel zoom <id> 12:00 12:10 fornece mais quadros. locate_in_frame(video, at, target) cria uma caixa e recorta uma coisa em um quadro para leitura detalhada.
  5. O que é dito. video_transcript(video, start, end) / jevreel transcript <id> --start 12:00 --end 13:00.
  6. Perguntas sobre o vídeo inteiro. ask_whole_video(video, pergunta, tipo, opcoes) / jevreel whole <id> "Isso é um tutorial?". Use kind=choice com opções, ou kind=score com níveis do menor para o maior (no máximo 10).

Lentes: quando as mesmas perguntas importam em todo o vídeo

Quando o usuário se preocupa com várias coisas ao longo de um vídeo (quem está na tela, regras de segurança, marcas, clima, se um slide está visível), não pergunte cada uma separadamente. Execute uma lente: a cada minuto, ela responde a todas as suas perguntas em uma única requisição. Depois, filtre as respostas quantas vezes precisar, de graça.

  • MCP run_lens(video, lens) com {"name": "site", "questions": [{"name": "helmet_off", "type": "noul", "ask": "Um trabalhador sem capacete está visível?"}, {"name": "vehicle", "type": "choice", "ask": "Qual veículo está mais visível?", "options": ["carro", "caminhão", "nenhum"]}, {"name": "crowd", "type": "score", "ask": "Quão lotado está?", "levels": ["Vazio", "Algumas pessoas", "Movimentado"]}]}. CLI: jevreel lens <id> lens.toml. Para incluir uma lente durante a indexação, passe-a para index_video (ou jevreel index --lens); isso custa quase nada extra.
  • query_timeline(video, "helmet_off > 0.7") / jevreel query <id> "helmet_off > 0.7 and vehicle == caminhão". Condições são coluna operador valor unidas por and; coloque entre aspas um valor que contenha "and" (place == 'livros e uma mesa'). Omita where para ver cada minuto e suas colunas. Perguntas de sim/não também fornecem <nome>_at, o segundo em que está mais visível.
  • As colunas padrão da timeline também estão lá: people, talking_to_camera, screen_or_slides, text_on_screen, cut, setting, activity (0-3), keyframe.

Leitura dos resultados

  • probability é a probabilidade de sim de Jev; strong significa pelo menos 0.7. Para acertos verified vem dos quadros completos, at / time é o quadro que melhor mostrou, e screened é a probabilidade da folha de contato antes. Acertos não verificados vêm apenas da folha.
  • shown e said são as perguntas de tela e transcrição, feitas separadamente.
  • also lista outros momentos prováveis na mesma janela.
  • Probabilidades classificam bem, mas não têm calibração garantida. Olhe antes de afirmar algo que você não viu, e diga quando tiver apenas um acerto fraco.
  • Nenhum acerto acima do limite é uma resposta real, mas verifique weak primeiro: janelas que Jev não descartou, incluindo aquelas que a verificação reverteu. Faça zoom nelas antes de dizer "não encontrado".
  • Cite momentos pelos seus tempos (por exemplo "aos 12:04"), para que o usuário possa pular para lá.

Custos

Jev cobra apenas por tokens de entrada, e requisições idênticas repetidas são respondidas do cache do jevreel gratuitamente (cached nos resultados). Cada ask envia cada folha no intervalo uma vez (uma folha por minuto de vídeo), mais uma requisição por janela verificada, então restringir com start/end torna as perguntas mais baratas e rápidas. Os resultados reportam requests, cached, input_tokens e estimated_usd.

Habilidades Relacionadas