Voltar ao site
Projeto Open Source
VidFind logo

VidFind

Busque no seu acervo de vídeos pelo que foi dito ou pelo que foi visto. Resultados com timestamp e player direto no navegador — 100% self-hosted, rodando na sua própria máquina.

Python Flask Whisper LLaVA Meilisearch Docker Ollama MIT
Arquitetura

Como funciona

Cada vídeo é indexado de duas formas — por fala e por cena — dentro do mesmo Meilisearch. Tudo orquestrado em contêineres Docker, sem depender de nenhum serviço externo.

Fala
Acervo de vídeos
suas pastas locais
Whisper
fala → texto + .srt
Meilisearch
índice de legendas
Cena
Frames
1 a cada N segundos
LLaVA
descreve a cena
Meilisearch
índice de cenas
Busca
Meilisearch
API Flask
web/app.py
Navegador
playback no timestamp
Recursos

O que ele faz

Busca por fala
Digite qualquer palavra e encontre o momento exato em que ela foi dita. Toda a fala é transcrita pelo Whisper e indexada.
Busca por cena
Descreva o que você quer ver — "pôr do sol", "pessoa na praia" — e o LLaVA encontra os frames que combinam com a descrição.
Resultados com timestamp
Todo resultado vem com o vídeo e o segundo exato. Um clique em "▶ Assistir" abre o player já no momento certo.
Transcrição completa
Abra a transcrição inteira de qualquer vídeo, com as legendas sincronizadas lado a lado com o player.
Download de legendas e vídeo
Baixe a legenda em .srt, o texto puro em .txt ou o próprio vídeo — direto de cada resultado da busca.
Filtro por pasta
A barra lateral lista todas as subpastas do acervo, para restringir a busca a um projeto ou coleção específica.
100% self-hosted
Nada sai da sua máquina: Whisper, LLaVA e Meilisearch rodam localmente em Docker. Seus vídeos ficam privados.
Modelos e visual configuráveis
Escolha o modelo do Whisper (tiny→medium) e do LLaVA (7b→34b) conforme seu hardware, e personalize logo e tema via config.json.
Interface

Veja funcionando

Busca por legendas
Busca por cenas
Player com legendas

Capturas de tela reais em breve.

Comece agora

Baixe e rode

Um único docker compose sobe tudo: Meilisearch, Whisper, Ollama/LLaVA e a interface web. Aponte para a sua pasta de vídeos e deixe o indexador trabalhar.

git clone https://github.com/dcbasso/VidFind.git
cd VidFind
# configure VIDEOS_PATH em .env
cp .env.example .env
docker compose up -d
Docker & Docker Compose
Uma pasta com o seu acervo de vídeos
GPU recomendada para o LLaVA (opcional)
./reindex.sh para indexar novos vídeos
O guia completo de instalação, deploy e opções de modelo está no README do repositório (EN e PT-BR). README →
indexer/ Python
Transcreve com Whisper, extrai frames, descreve as cenas com LLaVA e indexa fala e cena no Meilisearch.
ver pasta
web/ Flask + JS
API de busca e interface web: abas de legendas, cenas e vídeos, com player, transcrição e downloads.
ver pasta
docker-compose.yml Docker
Orquestra Meilisearch, Whisper, Ollama/LLaVA e a web em um único comando.
ver pasta