Watch Together SDK overview

Overview

Watch Together video-chat is a general-purpose video chatting infrastructure that is aimed to provide high-quality Audio and Video functionality that will allow you to create and provide engaging experiences in your application for your customers.

To register for our service please contact us at Support@sceenic.co.

If you already have credentials to the private area, login and retrieve your API_KEY and API_SECRET - Private area

Resources

( * ) SDKs are accessible only from the private area

Watch Together platform

Watch together video-chat application will allow you to create and manage interactive Audio and Video sessions for multiple participants and embed it in your web or mobile applications. We will provide you with SDKs for iOS, Android and Web to create and manage your experience.

Watch Together architecture is a client-server architecture whereby:

  • Clients - Web, iOS, or Android SDKs which will allow you to manage all the video chat logic (Web {JS

  • , React}, iOS {Swift, Obj-c-adpater} and Android {Kotlin, Java}

  • Server - which exposes authentication functionality and responsible for providing a valid token for the various clients (Authentication overview)

System flow:

You can expect the following functionality:

Client SDKs

  • Session management functionality

  • Connecting and disconnecting from a Session

  • Managing Video and Audio streams

    • Enable/Disable video

    • Enable/Disable audio

  • Audio routing functionality -out of the box - managed by the SDK

  • Session management functionality

  • Connecting and disconnecting from a Session

  • Managing Video and Audio streams

  • Enable/Disable video Enable/Disable audio

  • Active speaker detection

  • Quality of Service monitoring

  • Resolution and bitrate control

  • Screen sharing Camera preview

  • Synchronization logic Reconnect functionality (will be deployed soon)

  • Big screen flow support (Android and AppleTV) Audio routing functionality

Server

  • Authentication and client tokens

  • Archiving and server-side configuration (Coming soon)

Sessions

When watching together we bring together a few participants that stream Video and Audio. The participants are bound together in a Session.

The Session is the place where participants meet and interact. A Session is a unique entity, it exists once created, and when all participants leave it is erased and cannot be reused.

Once a Session is created it is possible to connect and manage local and remote streams (Audio and video).

Every Session has a unique sessionId to identify it which will allow various participants to join the specific Session.

Connecting and managing streams

Managing streams to provide a good user experience is always a complex task.

To do that we are providing you with the tools to manage many aspects of the Session functionality and life-cycle.

The first step in creating a Watch Together experience is setting your own Authentication Server. The Authentication Server should be hosted in your domain (Customer enclave) for several reasons:

  • To provide server-side access for configuration (The available functionality will increase with time)

  • Security - you will be responsible to integrate the token distribution to Web and Mobile clients and make sure it is done in a correct and secure way

Credentials

Setting up the Authentication server requires you to login to your private area and retrieve your API_KEY and API_SECRET

Authentication flow:

Once Authentication is set up you can retrieve a valid token to allow Web and Mobile clients to use the system.

Acquiring a valid token:

  • getToken

When the token is acquired, you will be able to connect to a Session by either creating it or joining an existing Session.

  • connect

Join session" flow:

Managing the Watch Together experience will be done using the callbacks and methods below:

  • onError

  • onConnected

  • onDisconnected

  • onParticipantJoined

  • onParticipantLeft

  • enableAudio

  • enableVideo

  • disableVideo

  • disableAudio

Key terms

  • Session- A one-time entity that binds together participants and allows management of participant behavior and experience

  • Participant - a local or remote user that streams either Video, Audio or both

  • Access token - a token that is made available for clients (Web, Mobile) so that they can authenticate against the service

  • Streams - Audio or Video that every participant in the Session can share - at the moment, this object is not exposed

  • Client SDKs - iOS, Android or Web SDKs which allows you to communicate with the Media Server Cluster (MSC) and create your custom experiences

  • Authentication server - A server, that is hosted in your domain (Customer enclave), whose purpose is to request valid token from the MSC and distribute it to clients

Resources

Support

Need technical support? contact us at Support@sceenic.co.

Last updated