Skip to content

YouTube crawler com IA local (Ollama/Mistral), NLP e FAISS: captura títulos, classifica tópicos e clusteriza por similaridade semântica.

Notifications You must be signed in to change notification settings

bruno-moura24/rabbit-hole-crawler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rabbit Hole Crawler

IA Local Status

Visão Geral

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.

Funcionalidades

  • 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.json para fácil consulta e análise.

Estrutura do Projeto

├── 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

Instalação

  1. Clone o repositório:

    git clone https://github.com/bitguardian/rabbit-hole-crawler.git
    cd rabbit-hole-crawler
  2. Crie e ative um ambiente virtual (opcional, recomendado):

    python -m venv .venv
    .venv\Scripts\Activate.ps1
  3. Instale as dependências:

    pip install -r requirements.txt
  4. Instale o Ollama:

    • Siga as instruções em https://ollama.com/download para instalar o Ollama.
    • Certifique-se de que o modelo mistral está disponível localmente:
      ollama pull mistral

Como Utilizar

  1. Execute o script principal:

    python src/main.py
  2. Informe a URL do canal do YouTube quando solicitado.

  3. 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.
  4. Consulte os resultados:

    • Abra o arquivo data/output.json para visualizar os títulos, temas e agrupamentos.

Exemplo de Saída

[
  {
    "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"]
  },
  ...
]

Requisitos

  • Python 3.10+
  • Ollama instalado e configurado
  • Modelos do Ollama disponíveis localmente (ex: mistral, zephyr e etc)

Observações

  • 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.

📘 Documentação complementar

Veja o fluxo detalhado do projeto para entender passo a passo como a IA local processa os dados.

🧾 Nota

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. ✅

About

YouTube crawler com IA local (Ollama/Mistral), NLP e FAISS: captura títulos, classifica tópicos e clusteriza por similaridade semântica.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages