digital-samba

Build video conferencing integrations using Digital Samba's API and SDK. Use when creating meeting rooms, embedding video calls, generating participant tokens, managing recordings, or integrating real-time collaboration features. Triggers include "Digital Samba", "video conferencing API", "embed video calls", "meeting room integration", "WebRTC iframe", "participant tokens".

#ai-assisted-development#api-integration#claude-code#claude-skill#digital-samba#embedded-video#meeting-rooms#sdk#video-calls#video-conferencing#webrtc

$ 安裝

git clone https://github.com/digitalsamba/digital-samba-skill ~/.claude/skills/digital-samba-skill

// tip: Run this command in your terminal to install the skill


name: digital-samba description: Build video conferencing integrations using Digital Samba's API and SDK. Use when creating meeting rooms, embedding video calls, generating participant tokens, managing recordings, or integrating real-time collaboration features. Triggers include "Digital Samba", "video conferencing API", "embed video calls", "meeting room integration", "WebRTC iframe", "participant tokens".

Digital Samba Integration

Build video conferencing into your applications using Digital Samba's prebuilt infrastructure. No WebRTC/Janus/TURN setup required.

Two Integration Approaches

  1. REST API - Server-side room/session/participant management
  2. Embedded SDK - Client-side iframe control and event handling

Quick Start

1. Create a Room (Server-side)

curl -X POST https://api.digitalsamba.com/api/v1/rooms \
  -H "Authorization: Bearer {DEVELOPER_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"friendly_url": "my-meeting", "privacy": "public"}'

2. Generate Access Token (Server-side)

const jwt = require('jsonwebtoken');

const token = jwt.sign({
  td: "team-uuid",      // Your team ID
  rd: "room-uuid",      // Room ID from step 1
  u: "John Doe",        // User display name
  role: "moderator"     // Optional: user role
}, DEVELOPER_KEY, { algorithm: 'HS256' });

3. Embed the Room (Client-side)

<iframe 
  allow="camera; microphone; display-capture; autoplay;" 
  src="https://yourteam.digitalsamba.com/my-meeting?token={jwt}"
  allowfullscreen="true">
</iframe>

4. Control with SDK (Optional)

import DigitalSambaEmbedded from '@digitalsamba/embedded-sdk';

const sambaFrame = DigitalSambaEmbedded.createControl({ 
  url: roomUrl,
  frame: document.getElementById('video-frame')
});

sambaFrame.on('userJoined', (e) => console.log(`${e.data.name} joined`));
sambaFrame.load();

When to Use What

NeedUse
Create/delete roomsREST API
User authenticationJWT tokens
Embed video UIiframe + SDK
Start/stop recordingREST API or SDK
React to eventsSDK events
Manage participantsREST API
Customize UIRoom settings API

Reference Documentation

For detailed information, see these reference files:

Key Concepts

Room Types

  • Public: Anyone with URL can join (enters name on join screen)
  • Private: Requires JWT token to join

Roles & Permissions

Assign roles via JWT role field. Common roles:

  • moderator - Full control (mute others, recording, etc.)
  • speaker - Can present and speak
  • attendee - View/listen only (configurable)

Authentication Flow

  1. Developer key → Server-side API calls only
  2. JWT tokens → Client-side room access
  3. Never expose developer key to browsers

Common Errors

CodeMeaningSolution
401Invalid/missing keyCheck Authorization header
403Insufficient permissionsVerify role/permissions
404Room not foundCheck room UUID/URL
422Validation errorCheck request body

Check for Updates

To check if your installed skill is up to date:

  1. Local version: cat .claude/skills/digital-samba/VERSION
  2. Latest version: curl -s https://api.github.com/repos/digitalsamba/digital-samba-skill/releases/latest | grep '"tag_name"'

To update (submodule install):

git submodule update --remote .claude/skills/digital-samba

To update (manual install): Re-clone and copy skill files from https://github.com/digitalsamba/digital-samba-skill

Resources