Client-Side Overview

Parts of Stream Video only exist in your app. A server-side client authenticates with your API secret and makes ordinary HTTP calls, so it has no camera, no microphone and nothing on screen. Connecting a user, joining a call, publishing tracks and rendering the other participants are all client SDK work.

What the client SDKs cover

Every client SDK carries its own version of the following, and they are not interchangeable. React and React Native expose hooks and context providers. iOS, Android and Flutter expose observable state objects. Unity and ESP32 differ again.

  • Connecting a user with the token your backend signed, then creating or joining a call
  • Camera, microphone and speaker selection, along with noise cancellation and video filters
  • The call and participant state your UI renders, kept current by WebRTC and WebSocket events
  • Screen sharing, picture in picture and keeping a call alive while the app is in the background
  • Answering, rejecting and ending ringing calls, which on iOS and Android means CallKit or a device push token
  • UI components and a UI cookbook, for the SDKs that ship them

Two sides of one feature

Several features are split across the two halves. The pages in this sidebar are the backend half of each.

Feature Configured here Used there
Call settings Call types set the defaults and permissions every call of a type inherits The client turns features on and off within what the call type allows
Ringing The call and its members are created here, see Ring calls The device rings, shows the caller and answers or rejects
Recording Recording modes, layouts and storage A participant with permission starts and stops it during the call
Transcription Transcription settings and where transcripts are stored Closed captions rendered live in the call UI
Livestreaming Backstage, RTMP and WHIP ingress, HLS output Broadcasting from the device, plus the player your viewers watch
Moderation Permissions and audio and video moderation Mute controls, blocking and the permission request UI

Client SDKs

Each one has a quickstart, and there are tutorials for each call type. Start with the SDK's client and authentication guide, which is where the token you generate here gets used.

Note:

The token your app connects with must be signed with your API secret, so it is minted here, on your server. A client SDK is initialized with the API key alone and cannot mint one. See Users & Tokens.

Add Chat to my app: getstream.io/SKILL.md

The fastest way to build with Stream. Start a new project or improve an existing one. Full CLI and documentation integration out of the box.


Ask your agent:

/stream Build me a Social App with Feeds and Moderation.
/stream Any livestream calls running?
/stream Video Server-side: <Your Question>