Skip to main content

Forward participant or MCU stream

Any active meeting participant's stream can be forwarded or even the MCU One View stream. This is also known as the AI Adapter.

The forward stream feature can only be activated with the API key.

warning

The API URL must contain the ROOM_ID in contrast to ACCESS_KEY in other API calls. FORWARD_ID MUST be unique for each forward!

The same source can be forwarded multiple times, but each must have its own FORWARD_ID.

OptionDescription
sourceForwards single video stream of a source (webcam, ipcam, drone, etc.)
mcuForwards entire video stream of the meeting
playbackForwards single stream of a public video file
info

The forward stream feature can only be activated with the API key.

Forward source

The API URL must contain the ROOM_ID in contrast to ACCESS_KEY in other API calls. FORWARD_ID must be unique for each forward!

POST /rooms/`ROOM_ID`/forward/source
HEADERS Authorization
RESPONSES 201 CREATED, 400 BAD REQUEST, 401 UNAUTHORIZED, 404 NOT FOUND
REQUIRED forward_id, user_id, type, url
Req/Res Example: Forward Room

You can get the required values for USER_ID, ROOM_ID by requesting the current room details here.

Request

curl -X POST \
-H "Authorization: $API_KEY" \
-d "forward_id=$FORWARD_ID" \
-d "user_id=$USER_ID" \
-d "type=audio,video" \
-d "url=${https://example.com/whip}" \
"https://api.eyeson.team/rooms/$ROOM_ID/forward/source"

Response
201
info

As soon as the source is disconnected, its forward will automatically stop. To catch the disconnection cases you can use the Eyeson Observer's participant_update and playback_update. They can give you insight when a source drops from the call and returns again.

forward_id

Type: String (required)
Custom, unique identifier for forwarding. Also used for ending the process.

user_id

Type: String (required)
Custom identifier for participants or video sources, such as ipcams, drones, etc.

info

It is possible to forward one user_id to multiple endpoints. When there is only one forward you can also use the value of the user_id as forward_id.

type

Type: Stringor Array<String> (required)
Controls which channels are forwarded.

ValueDescription
audioForwards the audio channel of a user mic/audio source
videoForwards the video channel of a user webcam/video source
audio,videoForwards both channels of a source

url

Type: URL (required)
The endpoint address.

Forward MCU One View

POST /rooms/`ROOM_ID`/forward/mcu
HEADERS Authorization
RESPONSES 201 CREATED, 400 BAD REQUEST, 401 UNAUTHORIZED, 404 NOT FOUND
REQUIRED forward_id, type, url

forward_id

Type: String (required)
Custom, unique identifier for forwarding. Also used for ending the process.

type

Type: Stringor Array<String> (required)
Controls which channels are forwarded.

ValueDescription
audioForwards the audio channel of the meeting
videoForwards the video channel of the meeting
audio,videoForwards both channels of the meeting

url

Type: URL (required)
The endpoint address.

Forward playback

POST /rooms/`ROOM_ID`/forward/playback
HEADERS Authorization
RESPONSES 201 CREATED, 400 BAD REQUEST, 401 UNAUTHORIZED, 404 NOT FOUND
REQUIRED forward_id, play_id, type, url

forward_id

Type: String (required)
Custom, unique identifier for forwarding. Also used for ending the process.

play_id

Type: String (required)
Custom identifier for playbacks. More about playbacks here.

type

Type: Stringor Array<String> (required)
Controls which channels are forwarded.

ValueDescription
audioForwards the audio channel of the playback
videoForwards the video channel of the playback
audio,videoForwards both channels of the playback

url

Type: URL (required)
The endpoint address.

End forward

DELETE /rooms/`ROOM_ID`/forward/`FORWARD_ID`
HEADERS Authorization
RESPONSES 200 OK, 400 BAD REQUEST, 401 UNAUTHORIZED, 404 NOT FOUND
Req/Res Example: End Forward
Request
curl -X DELETE \
-H "Authorization: $API_KEY" \
"https://api.eyeson.team/rooms/$ROOM_ID/forward/$FORWARD_ID"
Response
200