# Crawler Futebol

Gera um `channels.json` compatÃ­vel, preservando o documento remoto e substituindo somente `matches` por jogos obtidos do Futebol na TV.

```powershell
php .\crawl_futebol.php --output=.\channels.generated.json --days=hoje,amanha
```

Para publicar somente `matches` no `channels.json` de produção (preservando canais, configurações, filtros e tratamentos), informe o endpoint de publicação:

```powershell
php .\crawl_futebol.php --output=.\channels.generated.json --days=hoje --publish-url=https://cocomexa.online/canais/v2/save.php
```

Defina `CLOUDFLARE_API`, `CLOUDFLARE_EMAIL` e `CLOUDFLARE_KEY` antes de publicar. Após o envio, o crawler limpa o cache da URL pública automaticamente.

Para descobrir os canais associados ao rÃ³tulo `YOUTUBE` sem alterar o contrato de `matches`, gere um relatÃ³rio separado:

```powershell
php .\crawl_futebol.php --output=.\channels.generated.json --days=ontem,amanha --youtube-report=.\youtube-sources.json
```

Para links de partidas no YouTube, preencha `youtubeChannelId` em `config/channel_map.json` com IDs de canais oficiais. O crawler consulta a pÃ¡gina pÃºblica `/live` do canal; com uma chave da API, tambÃ©m pesquisa transmissÃµes ao vivo e agendadas:

```powershell
$env:YOUTUBE_API_KEY = '...'
php .\crawl_futebol.php --output=.\channels.generated.json --days=hoje
```

O crawler sÃ³ cria `url_alt` e `iframes` quando a transmissÃ£o encontrada pertence ao canal configurado e o tÃ­tulo contÃ©m os dois times. Sem confirmaÃ§Ã£o, a partida Ã© mantida com `url_alt: null` e `iframes: []`.

Em instalaÃ§Ãµes PHP no Windows sem CA configurada, informe o certificado sem desativar TLS:

```powershell
php .\crawl_futebol.php --output=.\channels.generated.json --ca-file='C:\Program Files\Git\mingw64\etc\ssl\certs\ca-bundle.crt'
```
