Sceenic - WatchTogether
  • Watch Together and Synchronization SDKs
  • Watch together SDK
    • Watch Together SDK overview
    • Authentication overview
    • Tutorials
      • Android
        • Android - Java/Kotlin
      • iOS
        • iOS Swift/Objective-c adapter
      • Web
        • Authentication
        • Create a New Project
        • Adding WT SDK library to the project
        • Installing the NPM package
        • Sample application
          • The conference skeleton
          • Connecting to a Session
          • How to turn on and off video and audio
          • How to change video quality
          • Errors handling
          • Leave the call
        • Support
    • API references
      • Android reference
        • Session
        • SessionListener
        • SessionReconnectListener
        • SessionConnectionListener
        • Participant
          • ParticipantType
        • SessionError
      • iOS Swift reference
        • Session
        • SessionDelegate
        • Participant
        • ParticipantActiveSpeakerDelegate
        • ParticipantDelegate
        • LocalParticipant
        • WTError
        • DataTypes
      • iOS Objective-c adapter reference
        • SessionAdapter
        • SessionAdapterDelegate
        • ParticipantAdapter
        • LocalParticipantAdapter
        • ParticipantAdpaterDelegate
        • ParticipantAdapterActiveSpeakerDelegate
        • NSError
        • DataTypes
      • Web reference
        • WT Session
          • WTSession.connect(sToken, pName, uC, m)
          • WTSession.connectAsAViewer(sToken, pName)
          • WTSession.connectWithSharingScreen(sToken, pName)
          • WTSession.disconnect()
          • WTSession.enableStats()
          • WTSession.sendMessage(msg)
          • WTSession.sendPlayerData(time)
          • async WTSession.getSessionState()
        • SessionListeners
          • WTSessionListeners.onConnected(fn)
          • WTSessionListeners.onDisconnected(fn)
          • WTSessionListeners.onStreamCreated(fn)
          • WTSessionListeners.onLocalStreamCreated(fn)
          • WTSessionListeners.onMosReport(fn)
          • WTSessionListeners.offMosReport(fn)
          • WTSessionListeners.onMessageReceived(fn)
          • WTSessionListeners.onSyncData(fn)
          • WTSessionListeners.onIceDisconnected(fn)
        • Participant
          • setMediaQuality
        • ParticipantListeners
        • ErrorsListeners
        • ReconnectListeners
        • MediaDevices
      • Cluster authentication service reference (CAS)
  • Synchronization SDK
    • Synchronization SDK overview
    • Tutorials
      • Android
        • Android - Java/Kotlin
      • iOS
        • iOS - Swift/Objective-c
      • Web
        • Installing the NPM package
        • Web - TypeScript/React
        • v2.0 Migration Guide
    • API references
      • Android reference
        • SynchSDK
        • SynchListener
      • iOS reference
        • SynchSDK
        • SynchListener
      • Web reference
  • Celebrity SDK
    • Celebrity SDK overview
    • Tutorials
      • Web
        • Installing the NPM package
        • Web - TypeScript/React
    • API References
      • Web reference
  • Chat SDK
    • Chat SDK overview
    • Tutorials
      • Web
        • Installing the NPM package
        • Web - TypeScript/React
    • API Refences
      • Web reference
  • Public Chat SDK
    • Public Chat SDK overview
    • Tutorials
      • Web
        • Installing the NPM package
        • Web - TypeScript/React
    • API Refences
      • Web reference
  • Celebrity Watch Party
    • Web application
    • Android
    • iOS
    • Celebrity View & Fan View
Powered by GitBook
On this page
  • Overview
  • The sync platform
  • System use case
  • Benefits
  • Support

Was this helpful?

  1. Synchronization SDK

Synchronization SDK overview

PreviousCluster authentication service reference (CAS)NextTutorials

Last updated 3 years ago

Was this helpful?

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 to receive the NPM package token, the API_KEY, and API_SECRET.

The sync platform

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

System use case

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

Benefits

Synchronization accuracy

Synchronization between the clients in the session of about 40-100 milliseconds.

Different synchronization algorithms

  • 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

Reporting (In progress)

A reporting API access that lets you follow the synchronization accuracy of every group and every client in the system.

Player support

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.

Messaging

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

Support

For more information have a look at the and

Need technical support? contact us at .

private area
Get the sync SDK
Sample code React
Sample code Kotlin
Sample code Java
Sample code Swift
Tutorials
API References.
Support@sceenic.co