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.

FeatureConfigured hereUsed there
Call settingsCall types set the defaults and permissions every call of a type inheritsThe client turns features on and off within what the call type allows
RingingThe call and its members are created here, see Ring callsThe device rings, shows the caller and answers or rejects
RecordingRecording modes, layouts and storageA participant with permission starts and stops it during the call
TranscriptionTranscription settings and where transcripts are storedClosed captions rendered live in the call UI
LivestreamingBackstage, RTMP and WHIP ingress, HLS outputBroadcasting from the device, plus the player your viewers watch
ModerationPermissions and audio and video moderationMute 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.

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.