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
Platform | Bot 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
andautomatic_audio_output
Bot Media Output cannot currently be used with
automatic_video_output
orautomatic_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
output_media
in Create BotYou 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 onlywebpage
is supported)config
: The webpage configuration (currently only supportsurl
)
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 .
Updated about 2 months ago