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

# Livestream

> Go live with co-hosting, room management, live chat, product tagging, and viewer analytics.

<Info>**SDK v7.x** · Last verified March 2026 · iOS · Android · Web</Info>

<Frame caption="Livestream with co-host, live chat, reactions, and host badge">
  <img src="https://mintcdn.com/social-b97141fb/Whepx2DgDzjvHcd8/images/Livestream%20(1).png?fit=max&auto=format&n=Whepx2DgDzjvHcd8&q=85&s=0b81bf7fe67c4a9383c5d79e7a94a2ce" alt="Livestream viewer experience showing co-host video, live chat overlay, and reaction emojis" style={{ maxWidth: "40%", margin: "0 auto", display: "block" }} width="375" height="812" data-path="images/Livestream (1).png" />
</Frame>

social.plus provides a full livestream stack built on top of LiveKit. A broadcast lives inside a **Room**, which owns a live chat channel, co-host invitations, product tags, and recordings. This section breaks the livestream workflow into focused guides.

## Architecture

```mermaid theme={null}
graph TD
    A[Host creates Room] --> B[Room is IDLE]
    B --> C[Host gets broadcast credentials]
    C --> D[Host connects to LiveKit]
    D --> E[Room goes LIVE]

    E --> F[Viewers watch stream]
    E --> G[Live chat channel active]
    E --> H[Co-hosts invited & join]
    E --> I[Products pinned to stream]

    F --> J[Watch session analytics]
    G --> K[Reactions & mentions]
    H --> L[Multi-host video layout]
    I --> M[Viewers browse & click products]

    E --> N[Host stops broadcast]
    N --> O[Room status: ENDED]
    O --> P[Recording processed]
    P --> Q[Room status: RECORDED]
    Q --> R[Video-on-demand playback]

    classDef action fill:#e1f5fe,stroke:#0288d1,color:#01579b
    classDef decision fill:#fff8e1,stroke:#f9a825,color:#f57f17
    classDef process fill:#f3e5f5,stroke:#7b1fa2,color:#4a148c
    classDef outcome fill:#e8f5e9,stroke:#388e3c,color:#1b5e20

    class A,N action
    class E decision
    class B,C,D,F,G,H,I,J,K,L,M,O,P process
    class Q,R outcome
```

## Room Lifecycle

Every livestream session is a **Room**. A Room transitions through these states:

| State      | Meaning                                 | Available actions                                |
| ---------- | --------------------------------------- | ------------------------------------------------ |
| `IDLE`     | Room created, not yet broadcasting      | Start broadcast, invite co-hosts, delete         |
| `LIVE`     | Currently broadcasting                  | Stream, invite co-hosts, pin products, live chat |
| `ENDED`    | Broadcast stopped, recording processing | Wait for recording                               |
| `RECORDED` | Recording available for playback        | Video-on-demand playback                         |

```mermaid theme={null}
stateDiagram-v2
    [*] --> IDLE : createRoom()
    IDLE --> LIVE : connect to LiveKit
    LIVE --> ENDED : stopBroadcast()
    LIVE --> LIVE : reconnect after drop
    ENDED --> RECORDED : recording ready
    RECORDED --> [*]
```

## Choose Your Approach

<CardGroup cols={2}>
  <Card title="UIKit — Out of the Box" icon="palette" href="/uikit/components/social/livestream">
    Pre-built UI for stream creation, co-hosting, viewing, live chat, and product tagging. Drop in and go — no LiveKit wiring needed. → iOS · Android · Web
  </Card>

  <Card title="SDK — Full Control" icon="code">
    Build a custom livestream experience with the APIs covered in the guides below. You manage the LiveKit connection, UI layout, and player.
  </Card>
</CardGroup>

## Guides

<CardGroup cols={2}>
  <Card title="Go Live & Room Management" icon="tower-broadcast" href="/use-cases/social/livestream/go-live-and-room-management">
    Create a room, get broadcaster credentials, connect to LiveKit, monitor room status, and access recordings.
  </Card>

  <Card title="Co-Hosting" icon="users-viewfinder" href="/use-cases/social/livestream/co-hosting">
    Invite co-hosts, accept/decline invitations, manage the multi-host stage, and handle co-host events.
  </Card>

  <Card title="Live Chat & Engagement" icon="comments" href="/use-cases/social/livestream/live-chat-and-engagement">
    Wire up real-time chat alongside the video, show viewer count, reactions, mentions, and moderation controls.
  </Card>

  <Card title="Product Tagging" icon="tags" href="/use-cases/social/livestream/product-tagging">
    Tag products to a livestream post, pin/unpin featured products, and track viewer clicks and impressions.
  </Card>
</CardGroup>

## Prerequisites

All guides in this section assume:

* SDK installed and authenticated → [SDK Setup](/social-plus-sdk/getting-started/overview)
* Video SDK configured → [Video Getting Started](/social-plus-sdk/video-new/broadcasting/overview)
* A `communityId` to host the room (rooms are community-only)
* `livekit-client` package installed (for SDK approach)

<Tip>
  **Dive deeper**: [Video SDK Reference](/social-plus-sdk/video-new/broadcasting/overview) has full parameter tables, method signatures, and platform-specific details for every API used in these guides.
</Tip>
