Skip to main content

Overview

Streampixel enables you to monitor the progress of the stream state process by sending real-time structured messages to your frontend. These messages contain detailed information about the current state of the stream, allowing you to design and implement custom loading UIs tailored to your needs.

Stream state messages

The messages are sent as structured objects with the following format:
Fields:
  • type: Identifies the type of the message. For stream state updates, this will always be stream-state.
  • value: Represents the current state of the stream. Possible values are:

How to intercept stream state messages

You can use the window.addEventListener method to listen for message events sent by the Streampixel iframe. Here’s an example:

Stream metadata

In addition to state updates, the iframe sends a one-time stream-metadata message at the start of every session. This message contains the identifiers that uniquely describe the running stream — the same sessionId and streamerId you can see for that session in your StreamPixel Analytics dashboard.

Message format

Fields:
  • type: Always stream-metadata.
  • sessionId: A unique identifier for the current streaming session. Each new session (page load / reconnect to a fresh streamer) generates a new value.
  • streamerId: The identifier of the underlying streamer (compute instance) serving this session.

Why this is useful

Because these are the exact same IDs surfaced in the StreamPixel Analytics dashboard, capturing them on your frontend lets you link a stream session to your own user. For example, when a logged-in user starts a stream you can store a mapping of { yourUserId → sessionId, streamerId } in your own database. Later, when you look at session analytics in the StreamPixel dashboard, you can correlate any session back to the user who watched it — useful for support, billing, per-user usage reporting, or feeding StreamPixel session data into your own analytics pipeline.

How to intercept stream metadata

The stream-metadata message is sent once, immediately after the iframe finishes loading and a session is assigned. Make sure your message listener is attached before the iframe loads so you don’t miss it.

Next steps

Stream control commands

Send commands to control resolution, audio, and the session.

Sample code for HTML and React

Full working examples that consume stream-state messages.