> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vetox.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Como as notificações funcionam

> Anuncie novas streams, vídeos, posts e episódios de oito plataformas externas diretamente no seu servidor do Discord.

O Vetox monitora oito plataformas externas e publica um anúncio no seu servidor sempre que algo novo aparece.

<CardGroup cols={4}>
  <Card title="Twitch" icon="twitch" href="/pt/notifications/twitch" />

  <Card title="Kick" icon="tower-broadcast" href="/pt/notifications/kick" />

  <Card title="YouTube" icon="youtube" href="/pt/notifications/youtube" />

  <Card title="Reddit" icon="reddit" href="/pt/notifications/reddit" />

  <Card title="Bluesky" icon="cloud" href="/pt/notifications/bluesky" />

  <Card title="Steam" icon="steam" href="/pt/notifications/steam" />

  <Card title="RSS" icon="rss" href="/pt/notifications/rss" />

  <Card title="Podcasts" icon="podcast" href="/pt/notifications/podcasts" />
</CardGroup>

## Três coisas precisam ser verdadeiras

Essa é de longe a razão mais comum para notificações parecerem não funcionar. Todas as três são necessárias, e apenas a primeira é visível na própria página de notificações.

<Steps>
  <Step title="Premium Basic ou superior">
    Toda plataforma requer ao menos o tier **Basic**. Adicionar uma assinatura no Starter é rejeitado com uma mensagem citando a plataforma.

    A verificação é feita duas vezes — uma quando você adiciona o item, e outra no momento em que um anúncio seria enviado.
  </Step>

  <Step title="O toggle da plataforma em Server Setup">
    Cada plataforma tem seu próprio interruptor na página [Server Setup](/pt/server-management/setup), e **é desligado por padrão**. Configurar a própria notificação não é suficiente.

    <Warning>
      Nenhuma das páginas de notificações mostra o estado deste toggle. Um feed totalmente configurado e com premium pago nunca disparará silenciosamente, sem qualquer indicação na UI de notificações. **Verifique Server Setup primeiro.**
    </Warning>
  </Step>

  <Step title="Permissões de canal">
    O Vetox precisa de **View Channel**, **Send Messages** e **Embed Links** no canal de destino. Veja abaixo.
  </Step>
</Steps>

## Limites

**10 itens por plataforma, por servidor** — 10 streamers do Twitch, 10 canais do YouTube, 10 subreddits, e assim por diante.

Este é um limite fixo do produto. **Não** aumenta com um tier premium maior, e é o mesmo em Basic, Max e Black.

## Quão rápido as notificações chegam

O Vetox faz polling em cada plataforma em um cronograma fixo. Um anúncio chega no próximo polling após o conteúdo aparecer.

| Plataforma | Verificado a cada | Cooldown por fonte |
| ---------- | ----------------- | ------------------ |
| Twitch     | 60 segundos       | 10 minutos         |
| Kick       | 60 segundos       | 10 minutos         |
| Bluesky    | 60 segundos       | 2 minutos          |
| Reddit     | 3 minutos         | 2 minutos          |
| Steam      | 3 minutos         | 2 minutos          |
| YouTube    | 5 minutos         | 10 minutos         |
| RSS        | 5 minutos         | 5 minutos          |
| Podcasts   | 5 minutos         | 5 minutos          |

O **cooldown** é um piso entre dois anúncios da mesma fonte, independente do intervalo de polling. Um subreddit que posta três vezes em um minuto produz um anúncio, não três.

<Note>
  O polling é feito por uma única instância eleita, então um servidor movimentado nunca recebe duplicatas de workers paralelos.
</Note>

### Dois modelos de tracking diferentes

| Modelo          | Plataformas    | Comportamento                                                                               |
| --------------- | -------------- | ------------------------------------------------------------------------------------------- |
| **Live state**  | Twitch, Kick   | Rastreia se a stream está ao vivo ou offline e anuncia no momento em que esse estado *muda* |
| **New content** | As outras seis | Rastreia itens individuais e anuncia cada novo uma vez                                      |

<Warning>
  **Adicionar um streamer que já está ao vivo não produz nada.** O tracker de live state só dispara em uma transição offline → online. Se você adicionar alguém no meio da stream, o primeiro anúncio que receberá é a *próxima* stream.

  Teste com alguém atualmente offline, ou simplesmente espere.
</Warning>

<Note>
  O estado live/offline é rastreado **por streamer, não por servidor**. Se vários servidores seguem o mesmo streamer, são direcionados de um estado compartilhado.
</Note>

## O que não será anunciado

<AccordionGroup>
  <Accordion title="Qualquer coisa publicada antes de você adicionar" icon="clock-rotate-left">
    Adicionar uma assinatura nunca faz backfill. Apenas conteúdo publicado após você adicionar o item é anunciado, então seu canal não é inundado durante a configuração.
  </Accordion>

  <Accordion title="Conteúdo com mais de 2 horas" icon="hourglass-end">
    Para as seis plataformas baseadas em conteúdo, qualquer coisa publicada há mais de 2 horas é ignorada mesmo que o Vetox nunca a tenha visto. Isso evita que um backlog seja despejado após uma indisponibilidade.

    Um item cujo feed não fornece uma data de publicação legível ignora essa verificação e pode ser anunciado independentemente da idade. Isso é ocasionalmente por que um item antigo de RSS aparece.
  </Accordion>

  <Accordion title="O mesmo item duas vezes" icon="copy">
    Todo item anunciado é lembrado por **7 dias**, por servidor, então um reinício ou um polling lento não pode produzir uma duplicata. Dois servidores seguindo o mesmo feed cada um recebe sua própria cópia — um servidor ver um item não o suprime para outro.
  </Accordion>

  <Accordion title="Replies e reposts do Bluesky" icon="reply">
    Apenas posts originais são anunciados. Replies e reposts são filtrados duas vezes. **Quote posts não são filtrados** e serão anunciados.
  </Accordion>

  <Accordion title="Qualquer coisa que chegou enquanto o premium estava expirado" icon="triangle-exclamation">
    Um item visto enquanto seu premium está inativo é marcado como visto por 7 dias mesmo que nada tenha sido postado. Fazer upgrade não anuncia retroativamente.

    Após reativar o premium, espere um período tranquilo até que conteúdo genuinamente novo apareça.
  </Accordion>
</AccordionGroup>

## Permissões do Discord

Verificadas nas permissões efetivas do bot no canal de destino no momento do envio:

| Permissão         | Por quê                                                                                                         |
| ----------------- | --------------------------------------------------------------------------------------------------------------- |
| **View Channel**  | O Vetox não pode postar em um canal que não pode ver                                                            |
| **Send Messages** | Para postar o anúncio                                                                                           |
| **Embed Links**   | Toda notificação é um embed. Sem isso, a mensagem é rejeitada de imediato, mesmo se Send Messages for concedido |

<Warning>
  **Uma falha de permissão perde aquele item permanentemente.** O item é marcado como visto antes de a tentativa de envio ser feita, e não há retry. Corrija as permissões *antes* que o conteúdo que você quer seja publicado — não depois.
</Warning>

<Tip>
  Se um canal tem overwrites de permissão personalizadas, verifique as permissões *efetivas* do bot ali, não seu cargo em nível de servidor. Embed Links é a que mais costuma faltar.
</Tip>

## Customizando o anúncio

| Opção               | O que faz                                                                                                           |
| ------------------- | ------------------------------------------------------------------------------------------------------------------- |
| **Discord channel** | Onde o anúncio é postado. Definido por item rastreado, então diferentes streamers podem postar em canais diferentes |
| **Mention role**    | Um cargo mencionado com o anúncio                                                                                   |
| **Custom embed**    | Controle total do título, descrição, cor, author, footer, thumbnail, imagem e fields                                |
| **Custom message**  | Texto puro usado como corpo do embed. **Disponível apenas em RSS e Podcasts**                                       |

<Note>
  Um controle de custom message aparece apenas nas páginas RSS e Podcast. As outras seis plataformas usam um custom embed.
</Note>

### Limites de tamanho de embed

| Campo                      | Limite                             |
| -------------------------- | ---------------------------------- |
| Título                     | 256 caracteres                     |
| Descrição                  | 4.096 caracteres                   |
| Nome do author             | 256 caracteres                     |
| Texto do footer            | 2.048 caracteres                   |
| Fields                     | 25, cada um 256 / 1.024 caracteres |
| URLs de imagem e thumbnail | 500 caracteres, sem SVG            |

### Variáveis

Campos de embed e mensagem suportam variáveis em chaves, como `{streamer.name}`. Cada plataforma tem seu próprio conjunto, listado na página da plataforma.

<Warning>
  **Uma variável desconhecida vira texto vazio, não um erro.** E um field de embed cujo título ou valor termina vazio é totalmente removido da mensagem.

  Então um field que continua sumindo quase sempre significa uma variável com erro de digitação, ou uma que não existe para aquela plataforma. Verifique o nome contra a lista na página da plataforma — o dropdown no editor é a autoridade.
</Warning>

<Note>
  As variáveis de stream do Twitch e Kick (`{stream.title}`, `{stream.viewers}` etc.) existem apenas no anúncio de **live**. Usadas em um embed de offline, resolvem para nada e seu field desaparece.
</Note>

## Menções

O mention role que você configura é pingado normalmente.

<Warning>
  Menções em um embed de notificação **não** são restritas ao cargo configurado. Uma menção de cargo ou usuário digitada em uma custom message ou corpo do embed vai pingar. Cuidado com `@everyone` num template customizado.
</Warning>

## Duas configurações que você não pode mudar

<Note>
  O **interruptor mestre** e a **cor do embed** para cada plataforma são armazenados mas não têm controle funcional no dashboard. Toda plataforma usa a cor padrão de sua marca, e o interruptor mestre não pode ser alternado.

  Use o toggle em [Server Setup](/pt/server-management/setup) para desligar uma plataforma, e um custom embed para definir uma cor.
</Note>

## Solução de problemas

<AccordionGroup>
  <Accordion title="Nada está sendo postado">
    Em ordem:

    1. O toggle da plataforma na página **Server Setup** está ligado — desligado por padrão e invisível daqui
    2. O servidor tem premium **Basic** ativo ou superior
    3. O canal de destino ainda existe
    4. O Vetox tem **View Channel + Send Messages + Embed Links** ali
    5. Para Twitch e Kick — o streamer ficou offline e voltou desde que você o adicionou
  </Accordion>

  <Accordion title="Recebo o anúncio de live mas não o de offline">
    Anúncios de offline são **desligados por padrão** no Twitch e Kick. Habilite no streamer rastreado.
  </Accordion>

  <Accordion title="Um field de embed continua sumindo">
    Seu título ou valor resolveu como vazio e o field foi descartado. Quase sempre uma variável com erro ou de plataforma errada.
  </Accordion>

  <Accordion title="Não consigo adicionar um décimo primeiro item">
    Dez por plataforma é o máximo e não escala com o tier. Remova um primeiro.
  </Accordion>

  <Accordion title="Funcionou, e parou depois que meu premium expirou">
    A configuração é mantida, não deletada, e retoma automaticamente. Mas qualquer coisa publicada durante o lapso já está marcada como vista e não será anunciada retroativamente.
  </Accordion>

  <Accordion title="Limpar o canal em um streamer do Twitch ou Kick não fez nada">
    Um campo de canal esvaziado não é enviado, então o canal anterior é mantido e nenhum erro é mostrado. Selecione um canal diferente em vez de limpá-lo.
  </Accordion>
</AccordionGroup>
