Extensão de navegador (Chrome MV3) que coleta odds publicamente acessíveis da Betano Brasil e as organiza em Markdown pronto para copiar.
⚠️ Escopo seguro, sem contornar nada. A extensão apenas lê páginas que você já consegue abrir. Não aposta, não interage com o cupom e não tenta driblar bloqueios. Veja Escopo seguro.
- Extrair página — coleta as odds da aba aberta no momento.
- Colar link — abre um link da Betano em uma aba temporária, extrai e fecha.
- Colar múltiplos links — processa vários links de uma vez (um por linha).
- Markdown pronto — saída em blocos por evento, com data, liga e uma linha por
mercado, separados por
---. - Modo limpeza — substitui o resultado a cada extração (ligado) ou acumula com separador (desligado).
- Copiar / Salvar
.md— copia para a área de transferência ou baixa o arquivobetano-odds-AAAA-MM-DD.md. - Detecção de bloqueio — se a Betano mostrar uma tela de restrição, a extensão registra a falha e para, sem tentar contornar a proteção.
Não há build: a pasta do repositório é a extensão descompactada.
- Abra
chrome://extensions. - Ative o Modo do desenvolvedor.
- Clique em Carregar sem compactação.
- Selecione a pasta deste repositório (a que contém o
manifest.json).
- Abra uma página acessível da Betano com odds visíveis (evento, liga ou a home).
- Clique no ícone da extensão na barra de ferramentas.
- Escolha uma ação:
- Extrair página — para a aba atual.
- Colar link da Betano + Extrair — para um link específico.
- Colar múltiplos links da Betano — para vários links (um por linha).
- Use Copiar ou Salvar .md para exportar o resultado.
Se a Betano abrir uma página diferente da partida solicitada (ou a home), a extensão avisa e não coleta a partida errada.
Vanilla JS, sem framework, sem bundler, sem TypeScript, sem etapa de build.
npm install # apenas dependências de desenvolvimento (playwright-core)
npm test # node --test — roda a suíte em tests/Os testes usam o runner nativo do Node (node:test + node:assert/strict) com fixtures
em fixtures/*.json; não iniciam um navegador. Requer Node 18+.
| Arquivo | Papel |
|---|---|
manifest.json |
Manifesto MV3 (permissões, service worker, ação do popup). |
background.js |
Service worker: roteia mensagens, orquestra abas e downloads. |
extractor.js |
Toda a lógica de parsing da página (injetada na página e testada no Node). |
formatter.js |
Validação de URL, detecção de redirect e renderização do Markdown. |
popup.* |
Interface do popup (pt-BR), com estado em chrome.storage.local. |
fixtures/ |
Payloads capturados da Betano usados nos testes. |
tests/ |
Suíte de testes. |
Para contexto detalhado de arquitetura e convenções, veja CLAUDE.md.
São restrições de produto, não preferências:
- Sem contornar nada. Sem proxy, spoof ou bypass de medidas de segurança/compliance/geo. Se houver bloqueio, a extensão reporta e para.
- Sem apostar. Nenhuma interação com o cupom/bet slip. Coleta de odds somente leitura.
- Login manual apenas. Se uma sessão logada for usada, é a sua própria sessão manual, só para visualizar páginas que você já acessa.