Syndicate Streaming Content with Tracking Across Multiple Distribution Channels

With Real-time Streaming you can syndicate content through multiple distribution partners or channels. This can be helpful to maximize the number of viewers or monetizing content through other platforms. In order to accomplish this, it is important to be able to track syndicated streams for analytics and billing.


Broadcast syndication defines a process for leasing the rights to distribute content through various third-parties. If you own the distribution rights to content you are broadcasting, you may want to sell the feed to other platforms to playback to their audience in order to maximize reach. It is important to be able to do this securely while also metering who is consuming the content that you are distributing.

Syndication Workflow

The following is an example workflow for setting up syndicated substreams:

  1. Create a publish token for your broadcast. Make sure this token has the secured setting enabled.
  2. Before the broadcast begins, create a Subscribe token with Tracking for each 3rd party you are syndicating a stream. These Subscribe tokens function as "master" tokens for each platform you are syndicating content.
    1. The master Subscribe token can be used by the 3rd party to self-sign other Subscribe tokens for their users if they need to secure their streams.
  3. Begin broadcasting your premium content via The 3rd parties can use the provided Subscribe token to access the stream for their viewers or to sign more subscribe tokens for their viewers.
  4. When the stream is running, the media server will gather statistics for the viewer associated with the tracking ID information. Since charges based on bandwidth, this data can be used to bill the 3rd parties relative to their consumed data.

RTMP Syndication

In certain circumstances, you may also choose to distribute content with RTMP to share on public commercial streaming platforms. Follow the Simulcast WebRTC and RTMP on OBS guide to learn how you can use OBS to create a real-time WebRTC stream and an RTMP stream simultaneously. It is important to note that the WebRTC stream will be real-time (<500ms), while the RTMP stream may have more delay (5s - 30s).

How-to Track Syndication

With syndication, you can distribute a stream to multiple channels. Using a tracking ID, you can determine how much bandwidth was consumed across each distribution channel and gather data useful for billing or user engagement analytics.

To manage viewing access, there are two types of tokens you use to syndicate:

  • Subscribe tokens can be used to restrict access for "who" may view a stream. You can assign a trackingId to each token for correlating usage.
  • Self-signed Subscribe tokens are JSON Web Tokens (JWT) that can be generated using a single subscribe token as the parent. These tokens can also be used to restrict access for "who" may view a stream but are instead created, signed, and managed by the content owner or distributor.

This guide covers the following steps:

Creating a Subscribe Token with Tracking ID

You can create a Subscribe token with a tracking ID:


Already have a Subscribe Token?

If you already have a Subscribe token, you can create a self-signed Subscribe token offline for your customers to use. See Tracking with Self-signed Subscribe Tokens.

To use the Create Token API, add the following to your API request body:

  "label": "with-tracking-2",
  "streams": [
      "streamName": "test-stream",
      "isRegex": false
    "originCluster": "ams-1"


Region Origination

The published stream and Subscribe token must originate from the same cluster region. The "Auto" region may be selected for both if the broadcast region changes from stream to stream. For more information, see Multi-region Support.

Alternatively, you can specify a tracking ID using the dashboard when creating a Subscribe token.


Tracking with Self-signed Subscribe Tokens

Once you have created a Subscribe token with a tracking ID, you can self-sign the token by creating a JWT.


  • If the parent Subscribe token has no tracking ID present, then your self-signed Subscribe token can have any tracking ID you wish (custom tracking).
  • If the parent Subscribe token has a tracking ID, then your self-signed Subscribe token will need to be set with the same tracking ID.
  • The self-signed Subscribe token created can only have one Stream Name, which will need to be matched to a Stream Name from the parent Subscribe token.
  • If the parent Subscribe token has global ".*" with regex, then the Stream Name can be any Stream Name.
  • If the parent Subscribe token has specific streams in it, then the self-signed Subscribe token must match one of them.

Examples of tracking a self-singing token can be found at this GitHub repository.

Viewing Statistics

With your API Secret found on the Dashboard, you can use the Analytics API to query information based on your viewer's tracking ID and other information.

To learn more, see the following REST APIs: