> ## Documentation Index
> Fetch the complete documentation index at: https://social-b97141fb-auto-generate-llmstxt.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>
