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

# Stream Blueprint

> Acompanhe o consumo de dados de streaming para vídeo, áudio, transmissões ao vivo e faturamento de transferência de dados em tempo real.

## Casos de Uso

Explore cenários comuns suportados pelo Stream Blueprint:

<CardGroup cols={2}>
  <Card title="Video Platforms" icon="video">
    Fature os clientes com base no consumo de largura de banda de vídeo e na qualidade da transmissão.
  </Card>

  <Card title="Music Streaming" icon="music">
    Acompanhe o uso de streaming de áudio por usuário para níveis de assinatura.
  </Card>

  <Card title="Live Events" icon="signal-stream">
    Monitore o consumo de transmissões ao vivo e cobre pelo uso de largura de banda.
  </Card>

  <Card title="Real-Time Data" icon="wave-pulse">
    Monitore a transferência de dados em tempo real para aplicações de IoT e telemetria.
  </Card>
</CardGroup>

<Info>
  Perfeito para plataformas de streaming de vídeo/áudio, serviços de streaming ao vivo e aplicações de dados em tempo real.
</Info>

## Início Rápido

Acompanhe os bytes de streaming consumidos pelos seus clientes:

<Steps>
  <Step title="Install the SDK">
    ```bash theme={null}
    npm install @dodopayments/ingestion-blueprints
    ```
  </Step>

  <Step title="Get Your API Keys">
    * **Chave da API Dodo Payments**: Obtenha em [Dodo Payments Dashboard](https://app.dodopayments.com/developer/api-keys)
  </Step>

  <Step title="Create a Meter">
    Crie um medidor no seu [Dodo Payments Dashboard](https://app.dodopayments.com/):

    * **Nome do Evento**: `stream_consumption` (ou o nome de sua preferência)
    * **Tipo de Agregação**: `sum` para rastrear os bytes totais transmitidos
    * **Over Property**: `bytes` para cobrar com base no uso de largura de banda
  </Step>

  <Step title="Track Stream Usage">
    <CodeGroup>
      ```javascript Video Streaming theme={null}
      import { Ingestion, trackStreamBytes } from '@dodopayments/ingestion-blueprints';

      const ingestion = new Ingestion({
        apiKey: process.env.DODO_PAYMENTS_API_KEY,
        environment: 'test_mode',
        eventName: 'stream_consumption'
      });

      // Track video stream consumption
      await trackStreamBytes(ingestion, {
        customerId: 'customer_123',
        bytes: 10485760, // 10MB
        metadata: {
          stream_type: 'video',
        }
      });
      ```
    </CodeGroup>
  </Step>
</Steps>

## Configuração

### Configuração de Ingestão

<ParamField path="apiKey" type="string" required>
  Sua chave da API Dodo Payments do painel.
</ParamField>

<ParamField path="environment" type="string" required>
  Modo de ambiente: `test_mode` ou `live_mode`.
</ParamField>

<ParamField path="eventName" type="string" required>
  Nome do evento que corresponde à configuração do seu medidor.
</ParamField>

### Opções para Acompanhar Bytes de Stream

<ParamField path="customerId" type="string" required>
  O ID do cliente para atribuição de cobrança.
</ParamField>

<ParamField path="bytes" type="number">
  Número de bytes consumidos na transmissão. Obrigatório para cobrança baseada em largura de banda.
</ParamField>

<ParamField path="metadata" type="object">
  Metadados opcionais sobre a transmissão, como tipo de stream, qualidade, sessionId, etc.
</ParamField>

## Melhores Práticas

<Tip>
  **Rastreie por Blocos**: Para transmissões longas, acompanhe o consumo em blocos em vez de esperar que toda a transmissão seja concluída.
</Tip>

<Warning>
  **Contagem precisa de bytes**: garanta que a contagem de bytes inclua toda a sobrecarga (cabeçalhos, sobrecarga de protocolo) ao cobrar pela largura de banda total.
</Warning>
