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

# Broadcasting Overview

> SDK-backed overview of room-based live broadcasting and co-host rooms.

Room broadcasting is the current SDK path for live rooms, including co-host rooms and direct-streaming room types where the platform exposes them. Treat rooms as the social.plus record for the live session: the SDK creates, observes, updates, stops, and publishes room objects, while your app's media stack connects to the streaming provider with credentials returned by the SDK.

<Note>
  This page is about the SDK room APIs. The legacy stream APIs and UIKit-level video experiences are separate surfaces.
</Note>

## Platform Surface

| Platform | Current SDK surface | Notes |
| - | - | - |
| TypeScript | `RoomRepository` and `PostRepository.createRoomPost()` | Supports room creation, live object/live collection observers, broadcaster data, stop/update/delete, recorded URL lookup, and room posts. |
| iOS | `AmityRoomRepository`, `AmityRoomCreateOptions`, and `AmityPostRepository.createRoomPost()` | Supports room creation, `AmityObject<AmityRoom>`, `AmityCollection<AmityRoom>`, stop/update/delete, co-host events, room token generation, and room posts. |
| Android | `AmityVideoClient.newRoomRepository()` and `AmitySocialClient.newPostRepository().createRoomPost()` | Supports room creation, `Flowable<AmityRoom>`, paging room queries, stop/update/delete, broadcaster data, recorded URLs, co-host events, and room posts. |
| Flutter | No current public room broadcasting repository found in this audit | The Flutter source has older stream APIs such as `AmityStream`, but no public `AmityRoomRepository` or room post creation surface. |

## What the SDK Owns

| Concern | SDK-owned | App-owned |
| - | - | - |
| Room record | Create, read, query, update, stop, delete where supported | Choose when to create or clean up rooms |
| Feed distribution | Create a room post from an existing `roomId` where supported | Decide the target feed and product copy |
| Broadcast credentials | Return broadcaster token or URL data where supported | Hand credentials to your media or LiveKit integration |
| Live viewing | Expose room playback fields such as live playback URL and thumbnails | Build the player, controls, and viewer UX |
| Room state | Expose statuses and realtime observers | React to state transitions in UI and operations |

## Room Workflow

<Steps>
  <Step title="Create a room">
    Create the room with a title and optional room configuration. Use [Create Room](./create-room) for platform-specific examples.
  </Step>

  <Step title="Publish a room post">
    Publish the room to a user or community feed with `createRoomPost()`. See [Room Posts](/social-plus-sdk/social/content-management/posts/creation/room-post).
  </Step>

  <Step title="Get broadcaster data">
    Request broadcaster data for the room. TypeScript and Android expose typed broadcaster-data APIs; iOS exposes room token generation.
  </Step>

  <Step title="Connect the media layer">
    Connect your app's media stack, such as a LiveKit client, using the returned credentials. This connection is outside the social.plus SDK.
  </Step>

  <Step title="Observe and stop the room">
    Observe the room object or room collection for lifecycle changes, then call the stop API when the broadcast ends.
  </Step>
</Steps>

## Room Statuses

| Status | Meaning | Platform notes |
| - | - | - |
| `idle` | Room exists but is not currently live | Available across TypeScript, iOS, and Android. |
| `live` | Room is actively broadcasting | Available across TypeScript, iOS, and Android. |
| `waitingReconnect` | Room is waiting for the broadcaster to reconnect | Available across TypeScript, iOS, and Android. |
| `ended` | Live session has ended | Available across TypeScript, iOS, and Android. |
| `recorded` | Recorded playback metadata is available | Available across TypeScript, iOS, and Android. |
| `terminated` | Room was terminated | Exposed by TypeScript and iOS room status types. |
| `error` | Room entered an error state | Available across TypeScript, iOS, and Android. |

## Related Topics

<CardGroup cols={2}>
  <Card title="Rooms Overview" icon="circle-info" href="./rooms-overview">
    Review the room model, statuses, participants, and playback fields.
  </Card>

  <Card title="Create Room" icon="plus" href="./create-room">
    Create a room and request broadcaster data with platform-specific SDK snippets.
  </Card>

  <Card title="Manage Rooms" icon="gear" href="./manage-rooms">
    Query, observe, update, stop, and delete room records.
  </Card>

  <Card title="Co-Host Management" icon="users" href="./co-host-management">
    Invite, remove, and observe co-host room participants.
  </Card>

  <Card title="Live Viewing" icon="eye" href="./live-viewing">
    Use room playback fields to power viewer playback.
  </Card>

  <Card title="Recorded Playback" icon="video" href="./recorded-playback">
    Access recorded playback metadata after a room is recorded.
  </Card>
</CardGroup>


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