Initialization
import { coss } from '@coss';coss.video.init({apiKey: process.env.COSS_KEY,environment: 'production', // or 'sandbox'});
Rooms
// Create a roomawait coss.video.rooms.create({name: 'team-sync-0422',privacy: 'private',config: {enableChat: true,enableRecording: false,maxParticipants: 10,},});// List roomsawait coss.video.rooms.list();// Retrieve room detailsawait coss.video.rooms.retrieve('team-sync-0422');// Update room settingsawait coss.video.rooms.update('team-sync-0422', {config: { enableRecording: true },});// Delete a roomawait coss.video.rooms.delete('team-sync-0422');
Tokens
// Generate a join tokenconst token = await coss.video.tokens.create({roomName: 'team-sync-0422',userId: 'user_abc123',role: 'host',exp: Math.floor(Date.now() / 1000) + 60 * 60,});
Participants
// List participantsawait coss.video.participants.list('team-sync-0422');// Kick a participantawait coss.video.participants.remove('team-sync-0422', 'user_abc123');// Get participant historyawait coss.video.participants.history({roomName: 'team-sync-0422',userId: 'user_abc123',});
Recordings
// Start recordingawait coss.video.recordings.start('team-sync-0422');// Stop recordingawait coss.video.recordings.stop('team-sync-0422');// List past recordingsawait coss.video.recordings.list();// Retrieve a recordingawait coss.video.recordings.retrieve('rec_abc123');// Delete a recordingawait coss.video.recordings.delete('rec_abc123');
Webhooks
// Webhook eventscoss.video.webhooks.on('room.started', (event) => {console.log(`Room started: ${event.data.roomName}`);});coss.video.webhooks.on('participant.joined', (event) => {const { userId, roomName } = event.data;console.log(`${userId} joined ${roomName}`);});// Other events:// room.ended, participant.left, recording.started, recording.stopped
Utilities
// Validate webhook signatureconst isValid = coss.video.utils.verifySignature({payload: req.body,signature: req.headers['coss-video-signature'],secret: 'whsec_video_123',});
Bonus - Meeting URL Generator
// Generate a meeting URLconst meetingUrl = coss.video.utils.generateJoinUrl({roomName: 'team-sync-0422',token,});