Stream Audio/Video from Webpage to a Meeting

Stream audio and video from a webpage directly to a meeting

Recall bots support streaming a webpage's audio and video to meetings via the bot's camera and microphone.

A specific example

The following video demonstration shows a specific example of a bot streaming a Youtube video to a Zoom meeting

Platform Support

PlatformBot Configuration (output_media)
Zoom
Google Meet
Microsoft Teams*
Cisco Webex
Slack Huddles

*Outputting media for Teams native bots is currently not supported.

🚧

Streaming Media incompatible with automatic_video_output and automatic_audio_output

Bot Media Output cannot currently be used with automatic_video_output or automatic_audio_output.

The Output Video and Output Audio endpoints must also not be used if your bot is streaming a webpage's contents to the meeting.

Quickstart


Streaming a webpage's audio/video to a meeting

Method 1: Using the output_media in Create Bot

You can use the output_media configuration in the Create Bot endpoint to stream the audio and video contents of a webpage to your meeting.

output_media takes the following parameters:

  • kind: The type of media to stream (currently only webpage is supported)
  • config: The webpage configuration (currently only supports url)

Let's look at an example call to Create Bot:

// POST /api/v1/bot/
{
  "meeting_url": "https://us02web.zoom.us/j/1234567890",
  "bot_name": "Recall.ai Notetaker",
  "output_media": {
    "kind": "webpage",
    "config": {
      "url": "https://www.recall.ai"
    }
  }
}

The example above tells Recall to create a bot that will continuously stream the contents of recall.ai to the provided meeting URL.

Method 2: Using the Output Media endpoint

You can choose to start outputting media by calling the Output Media endpoint at any point when the bot is in a call.

The parameters for the request are the same as the output_media configuration.

Example cURL:

curl --request POST \
     --url https://api.recall.ai/api/v1/bot/{bot_id}/output_media/ \
     --header 'Authorization: ${RECALL_API_KEY}' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "kind": "webpage", 
  "config": {
    "url": "https://recall.ai"
  }
}
'

Stopping media output

You can stop the bot media output at any point while the bot is streaming media to a call by calling the Stop Output Media endpoint.

Example cURL:

curl --request DELETE \
     --url https://api.recall.ai/api/v1/bot/{bot_id}/output_media/ \
     --header 'Authorization: ${RECALL_API_KEY}' \
     --header 'accept: application/json' \
     --header 'content-type: application/json'

Accessing realtime meeting data

The bot exposes a Websocket endpoint to retrieve realtime meeting data while the webpage is streaming audio and video to the call. Right now, only realtime transcripts are supported. You can connect to the realtime API from your webpage with the following example:


const ws = new WebSocket('wss://meeting-data.bot.recall.ai/api/v1/transcript');

ws.onmessage = (event) => {
  const message = JSON.stringify(event.data);

  // .. your logic to handle realtime transcripts
};

ws.onopen = () => {
  console.log('Connected to WebSocket server');
};

ws.onclose = () => {
  console.log('Disconnected from WebSocket server');
};

The websocket messages coming from the /api/v1/transcript endpoint have the same shape as the data object in Real-time transcription .