All developer docs

EveryCord Developers

Facecam and captions

The host's camera as a bubble over the stream, and automatic captions drawn into the video. Both are drawn on the phone before the video is encoded, so every destination shows them.

Early access. Code samples are illustrative until the 1.0.0 release. Write to services@symaro.com to join.

Facecam

Feature capture, Live tier. Your app holds the camera permission (NSCameraUsageDescription on iOS, CAMERA on Android).

iOSAndroid
Shapes.circle, .roundedRectangleFacecamShape.CIRCLE, FacecamShape.ROUNDED_RECTANGLE
Corners.topLeading, .topTrailing, .bottomLeading, .bottomTrailingCorner.TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT
Defaultcircle, bottom leadingcircle, bottom left

Turn it on when the stream starts, then move or reshape it while live:

let session = try await EveryCord.live.start(LiveOptions(
    title: "Reacting to your clips",
    facecam: FacecamOptions(shape: .circle, corner: .bottomTrailing)
))
session.setFacecam(shape: .roundedRectangle, corner: .topTrailing)
val session = EveryCord.live.start(LiveOptions(title = "Reacting to your clips", facecam = Facecam()), consent)
session.setFacecam(FacecamShape.ROUNDED_RECTANGLE, Corner.TOP_RIGHT)
session.hideFacecam()
session.setMicrophoneMuted(true)

On iPhone, the camera keeps running while the host is in another app through Picture in Picture (iOS 18 and later). When the stream has co-hosts, their bubbles sit beside the host's.

Captions

Feature captions, Engage tier and up. With captions: true, the SDK transcribes the speech in the stream and draws the captions into the video, so viewers can follow along with the sound off.

let session = try await EveryCord.live.start(LiveOptions(title: "Patch notes", captions: true))
val session = EveryCord.live.start(LiveOptions(title = "Patch notes", captions = true), consent)
  • Speech is recognized on the device and never leaves it for captioning.
  • iOS uses Apple's speech recognition in the device's language, falling back to US English. When the device has no on-device model for the language, captions stay off and the stream goes on.
  • Android needs Android 13 or later with on-device speech recognition.

Facecam on recordings

EveryCord's app also adds a facecam to a saved recording: it plays the recording while it films the person, then saves a new video with the camera in a bubble. A recording facecam helper for partner apps is in early access.

The EveryCord SDKs and the Partner API are in early access. For access, keys and questions, write to services@symaro.com.

These docs are also on GitHub with the install files: facecam-captions.md in SymaroTeam/everycord-sdk.

Updated October 22, 2026.