> ## Documentation Index
> Fetch the complete documentation index at: https://social-b97141fb-feat-user-history-moderation-detail.mintlify.site/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-feat-user-history-moderation-detail/NVLFFvDF9Y1lT-Cj/images/Livestream%20(1).png?fit=max&auto=format&n=NVLFFvDF9Y1lT-Cj&q=85&s=d55ac371ed6a8401559749e929398905" 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 the live chat channel, co-host invitations, and recording lifecycle. Products are tagged on the published room post (the child room post), not on the Room entity itself. 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>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.