Rabbit Hole Crawler é uma ferramenta automatizada para coleta, classificação e agrupamento de títulos de vídeos de canais do YouTube. Utiliza IA local para identificar temas principais e agrupa os conteúdos por similaridade semântica, facilitando a análise de tendências e interesses de canais.
- Coleta de Títulos: Extrai os títulos dos vídeos de um canal do YouTube informado pelo usuário.
- Classificação de Temas: Utiliza um modelo local (Ollama + Mistral) para classificar cada título em um tema principal.
- Agrupamento Semântico: Agrupa os temas por similaridade usando embeddings e FAISS.
- Exportação de Resultados: Salva os dados processados em
data/output.jsonpara fácil consulta e análise.
├── data/
│ └── output.json # Resultados finais
├── docs/
│ └── fluxo.md # Documentação detalhada do fluxo
├── src/
│ ├── main.py # Script principal
│ ├── crawler.py # Coleta de títulos do YouTube
│ ├── classifier_local.py # Classificação de temas com IA local
│ └── embedder.py # Agrupamento semântico
├── requirements.txt # Dependências do projeto
└── README.md # Este arquivo
-
Clone o repositório:
git clone https://github.com/bitguardian/rabbit-hole-crawler.git cd rabbit-hole-crawler
-
Crie e ative um ambiente virtual (opcional, recomendado):
python -m venv .venv .venv\Scripts\Activate.ps1 -
Instale as dependências:
pip install -r requirements.txt -
Instale o Ollama:
- Siga as instruções em https://ollama.com/download para instalar o Ollama.
- Certifique-se de que o modelo
mistralestá disponível localmente:ollama pull mistral
-
Execute o script principal:
python src/main.py -
Informe a URL do canal do YouTube quando solicitado.
-
O programa irá:
- Coletar os títulos dos vídeos do canal.
- Classificar cada título em um tema principal usando IA local.
- Agrupar os temas por similaridade semântica.
- Salvar os resultados em
data/output.json.
-
Consulte os resultados:
- Abra o arquivo
data/output.jsonpara visualizar os títulos, temas e agrupamentos.
- Abra o arquivo
[
{
"titulo": "ELE SÓ IA VISITAR O PAI NA FAZENDA, MAS ACABOU SENDO ABDUZIDO POR ALIENÍGENAS!",
"tema": "Ficção Científica ou Fantasia",
"temas_semelhantes": ["Televisão (TV) ou Cinema", "Aventura marinha ou Animais Marinhos"]
},
...
]- Python 3.10+
- Ollama instalado e configurado
- Modelos do Ollama disponíveis localmente (ex: mistral, zephyr e etc)
- O agrupamento semântico depende da qualidade dos embeddings e do modelo utilizado.
- O Ollama deve estar rodando localmente para a classificação funcionar.
- O projeto pode ser expandido para outros tipos de classificação ou fontes de dados.
Veja o fluxo detalhado do projeto para entender passo a passo como a IA local processa os dados.
Este projeto foi desenvolvido exclusivamente para fins educacionais e de demonstração de habilidades em inteligência artificial local, NLP e agrupamento semântico.
Não possui vínculo com nenhuma instituição, canal, ou plataforma externa, nem deve ser utilizado para coleta de dados em larga escala sem consentimento.
Use com responsabilidade. ✅