A demonstration application showcasing how to integrate the Daily.co JavaScript SDK for video calls with Tavus Conversation recording functionality.
This demo illustrates how to:
- Create and join a Daily.co video call (Tavus Conversation)
- Programmatically control cloud recording via the Daily.js API
- Configure S3 bucket storage for recordings
The application uses the daily-js library loaded from CDN:
<script src="https://unpkg.com/@daily-co/daily-js"></script>The video call is rendered within a container div using the Daily.js SDK:
callFrame = DailyIframe.createFrame(videoFrame, {
showLeaveButton: true,
});When a user clicks the join button, the application:
callFrame.join({ url: ConversationURL }).then(() => {
statusDiv.textContent = "Joined Conversation successfully!";
startRecordingButton.disabled = false;
stopRecordingButton.disabled = false;
}).catch((error) => {
statusDiv.textContent = "Failed to join Conversation: " + error.message;
});Start recording with cloud storage:
callFrame.startRecording({ recordingType: "cloud" });Stop recording:
callFrame.stopRecording();For cloud recording to work, users must configure:
- AWS S3 bucket for recording storage
- Proper IAM roles and permissions
- Recording parameters in the Tavus Conversation creation API:
{ "enable_recording": true, "recording_s3_bucket_name": "your-bucket-name", "recording_s3_bucket_region": "your-bucket-region", "aws_assume_role_arn": "your-role-arn" }
- Configure S3 bucket following Daily.co documentation
- Create a Tavus Conversation with recording enabled
- Use this demo to join the conversation
- ccc
- Recordings are stored in your configured S3 bucket
- Modern browser with WebRTC support
- Valid Tavus Conversation URL
- Properly configured AWS S3 bucket with appropriate permissions