Suggestions

close search

Add Messaging, Voice, and Authentication to your apps with Vonage Communications APIs

Visit the Vonage API Developer Portal

Experience Composer

Experience Composer is a cloud-based service that lets you capture any publicly available website and publish it as a stream in an existing OpenTok API session. This composed stream can be used for archive recording, broadcasting, and streaming into other interactive OpenTok sessions, while keeping the rich UI/UX experiences of the website intact.

REST API methods

Use the Video API REST API to do the following:

The OpenTok server SDKs also include methods for using Experience Composer.

Use cases

Experience Composer Archive

You can use the OpenTok archive feature to record audio and video of an OpenTok session. However, the video layout for the composed archive is limited to supported video layout options.

You can use Experience Composer to use your site's actual layout for the archive layout:

  1. Create an Experience Composer, with the URL pointing to a web page that subscribes to the streams in a session, applying the appropriate layout.

  2. Have the Experience Composer publish the page to a stream in a new OpenTok session.

  3. Use the OpenTok REST API or OpenTok server SDK method to archive the Experience Composer stream.

Set the resolution of the archive to match the resolution of the Experience Composer (which is set when you start the Experience Composer).

Experience Composer Broadcast

With the OpenTok live streaming broadcast feature, you can broadcast an OpenTok session to an HLS or RTMP stream. However, the video layout for a live streaming broadcast is limited to supported video layout options.

You can use Experience Composer to use your site's actual layout for the broadcast layout:

  1. Create an Experience Composer, with the URL pointing to a web page that subscribes to the streams in a session, applying the appropriate layout.

  2. Have the Experience Composer publish the page to a stream in a new OpenTok session.

  3. Use the OpenTok REST API or OpenTok server SDK method to broadcast the Experience Composer stream to an HLS or RTMP stream.

Set the resolution of the archive to match the resolution of the Experience Composer (which is set when you start the Experience Composer).

Expand live interactive broadcasts to include more participants (up to millions)

OpenTok live streaming broadcasts let you up to 15,000 clients view an interactive OpenTok session. The number supported depends on the number of clients publishing streams in the session (see the Live interactive broadcasts guide).

You can use Experience Composer to expand the number of viewers:

  1. Create an Experience Composer, with the URL pointing to a web page that subscribes to the streams in the main OpenTok session to be broadcast.

  2. Have the Experience Composer publish the page to a new OpenTok session.

  3. Repeat this with a number of other Experience Composer instances — each subscribing to the streams in the first session and publishing them to a new session.

  4. Your application server will send the session IDs for the Experience Composer sessions to each of the viewing clients (clients that are not publishing to the first session). The application server will need to keep track of how many clients are added to each experience composer session, so that no more than 15,000 connect to any one.

The resulting array of Experience Composer sessions will support up to 15,000 * (15,000 - 2) viewers (224,970,000 viewers) when there are two publishers. For other numbers of publishers, see the table of supported clients in the Live interactive broadcasts guide, and this technique will support 15,000 * ([number supported from that table] - [number of publishers]) clients.

Other use cases

You can use Experience Composer to capture any web page and send it as an audio-video stream into an OpenTok session for others to view. The page may include audio and video from sources other than OpenTok streams. Or it may include dynamic content with complex UI layout that clients connected to the OpenTok session can view.

Limitations

No GPU support

The Experience Composer rendering servers do not have GPU support. They are not capable of running web applications that would typically use more than 10% of the GPU running in Chrome on a desktop. If the web application you send to Experience Composer uses OpenGL (or other code that would benefit from a GPU), performance and rendering in Experience Composer may be degraded.

Routed sessions required

Experience Composer is only compatible with routed sessions (sessions that use the OpenTok Media Router).

Server rotation

An Experience Composer ends during server rotation for the session it uses. You can restart an Experience Composer in response to server rotation notification events. See Server Rotation and Session Migration.

Configuring callbacks

In order to configure secure callbacks for Experience Composer webhooks please refer to this guide.

When the status of an Experience Composer changes, an HTTP POST will be delivered to the URL configured. If no callback URL is configured, no status update will be delivered. The raw data of the HTTP request is a JSON-encoded message of the following form:

{
  "id": "<experience-composer-id>",
  "sessionId": "<session-id>",
  "streamId": "<output-stream-id>",
  "status": "stopped",
  "reason": "Max duration exceeded."
  "event": "render"
}

The JSON object includes the following properties:

Data visualization

Viewing data in Insights API

You can use the Insights API to view Experience Composer usage data. The experienceComposer usage data shows the minutes published by Experience Composer.

The experienceComposerArchive and experienceComposerBroadcast usage properties are deprecated. Previously, the experienceComposer usage data did not include minutes from periods when an Experience Composer was connected to an archive or broadcast. However, this is no longer the case. (The Experience Composer Archive and Experience Composer Broadcast bundles are no longer available.)

Updates

August 8, 2025

The following enhancements were added:

July 8, 2025

The following enhancements were added:

Enhanced scalability and reliability with improved load balancing and regional failover, enabling faster response to traffic spikes.

June 3, 2025

The following enhancements were added:

May 26, 2025

The following enhancements were added:

October 3, 2024

The following enhancements were added: