> ## 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

> Theo dõi mức tiêu thụ dữ liệu streaming cho video, âm thanh, phát trực tiếp và thanh toán dữ liệu thời gian thực.

## Trường Hợp Sử Dụng

Khám phá các kịch bản phổ biến được hỗ trợ bởi Stream Blueprint:

<CardGroup cols={2}>
  <Card title="Video Platforms" icon="video">
    Tính phí khách hàng dựa trên lượng băng thông video tiêu thụ và chất lượng phát sóng.
  </Card>

  <Card title="Music Streaming" icon="music">
    Theo dõi mức sử dụng phát trực tuyến âm thanh của từng người dùng cho các cấp đăng ký.
  </Card>

  <Card title="Live Events" icon="signal-stream">
    Giám sát mức tiêu thụ luồng trực tiếp và tính phí dựa trên việc sử dụng băng thông.
  </Card>

  <Card title="Real-Time Data" icon="wave-pulse">
    Theo dõi truyền dữ liệu thời gian thực cho các ứng dụng IoT và thu thập dữ liệu từ xa.
  </Card>
</CardGroup>

<Info>
  Hoàn hảo cho các nền tảng phát trực tuyến video/âm thanh, dịch vụ phát trực tiếp và các ứng dụng dữ liệu thời gian thực.
</Info>

## Bắt Đầu Nhanh

Theo dõi số byte streaming mà khách hàng của bạn đã tiêu thụ:

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

  <Step title="Get Your API Keys">
    * **Dodo Payments API Key**: Lấy nó từ [Dodo Payments Dashboard](https://app.dodopayments.com/developer/api-keys)
  </Step>

  <Step title="Create a Meter">
    Tạo một đồng hồ đo trong [Dodo Payments Dashboard](https://app.dodopayments.com/):

    * **Event Name**: `stream_consumption` (hoặc tên bạn muốn)
    * **Aggregation Type**: `sum` để theo dõi tổng số byte đã phát
    * **Over Property**: `bytes` để tính phí dựa trên việc sử dụng băng thông
  </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>

## Cấu Hình

### Cấu Hình Nhập Dữ Liệu

<ParamField path="apiKey" type="string" required>
  Khóa API Dodo Payments của bạn từ bảng điều khiển.
</ParamField>

<ParamField path="environment" type="string" required>
  Chế độ môi trường: `test_mode` hoặc `live_mode`.
</ParamField>

<ParamField path="eventName" type="string" required>
  Tên sự kiện khớp với cấu hình đồng hồ đo của bạn.
</ParamField>

### Tùy Chọn Theo Dõi Số Byte Stream

<ParamField path="customerId" type="string" required>
  ID khách hàng để phân bổ tính phí.
</ParamField>

<ParamField path="bytes" type="number">
  Số byte đã tiêu thụ trong luồng. Yêu cầu để tính phí dựa trên băng thông.
</ParamField>

<ParamField path="metadata" type="object">
  Siêu dữ liệu tùy chọn về luồng như loại luồng, chất lượng, sessionId, v.v.
</ParamField>

## Thực Hành Tốt Nhất

<Tip>
  **Theo dõi theo khối**: Đối với các luồng dài, hãy theo dõi mức tiêu thụ theo từng khối thay vì đợi toàn bộ luồng hoàn tất.
</Tip>

<Warning>
  **Đếm byte chính xác**: Đảm bảo số byte bao gồm tất cả chi phí phát sinh (headers, protocol overhead) nếu tính phí cho tổng băng thông.
</Warning>
