Synchronization SDK overview
The Sync SDK will allow you to create groups of people that are watching a video stream and synchronize the content the group is watching across all platforms.
To get the Web SDK login to your private area to receive the NPM package token, the API_KEY, and API_SECRET.
To synchronize the content across all players in the group we connect to the players, extract the relevant time data, and manage it on a dedicated back-end.
The sync SDK’s architecture is a client-server architecture:
- Clients - Web SDK, iOS, and Android SDKs
- Server - Provides the synchronization logic and reporting service as to the Quality of Service
The system use case is the following - Allow a group of Players to play the same video content in a synchronized manner for the entire group.
Groups can be as large as ten of thousands of Players or as small as two, which will depend on your specific use case.
This use case will fit well for:
- Sport matches
- Live concerts
- Live and breaking news
Or any other content you believe requires synchronization.

System use case - Synchronization
Synchronization between the clients in the session of about 40-100 milliseconds.
- Follow the leader - the first client that logs in the session will dictate the speed
- Average - calculates the average common timeline of the clients as the synchronization timeline
- Weighted average - calculates the average common timeline of the clients with respect to the platform they come from (Web, iOS, or Android) as the synchronization timeline
- Linear - all the clients will be synchronized independently with the server timeline
A reporting API access that lets you follow the synchronization accuracy of every group and every client in the system.
Any player can be used as long as it supports getting the absolute current position of the stream and changing playback rate.
Absolute current position for the stream can be obtained using various options, for example:
- Using EXT-X-PROGRAM-DATE-TIME tag
- Using ID3 tags
- Using initial PTS as an offset
To use any player you will need to extend our object model and implement all the required methods.
As all the clients are connected through our system you will be able to send control messages of different types from client to client or broadcast messages.
This will allow you the following
- Have control over the various player and functionalities
- Create a chat between clients
- Create your own custom messaging protocol between clients