# Viewing ## 1. LiveKit Meet (Browser) Quickest way to test. 1. Generate an operator token: ```bash ./scripts/generate_token.py \ --api-key YOUR_API_KEY \ --api-secret YOUR_SECRET \ --room robot-room \ --identity operator-001 \ --role operator ``` 2. Go to [meet.livekit.io](https://meet.livekit.io) 3. Enter: - URL: `wss://your-livekit-server.com` - Token: (paste the token) 4. Click Connect ## 2. LiveKit CLI For debugging or headless testing. ```bash livekit-cli join-room \ --url wss://your-livekit-server.com \ --api-key YOUR_API_KEY \ --api-secret YOUR_SECRET \ --room robot-room \ --identity viewer ``` ## 3. Custom Web App Use the LiveKit JavaScript SDK. ```javascript import { Room } from 'livekit-client'; const room = new Room(); await room.connect('wss://your-livekit-server.com', token); room.on('trackSubscribed', (track, publication, participant) => { if (track.kind === 'video') { const element = track.attach(); document.getElementById('video-container').appendChild(element); } }); ``` Install: ```bash npm install livekit-client ``` ## Token Roles | Role | Can Publish | Can Subscribe | Use Case | |------|-------------|---------------|----------| | `robot` | Yes | Yes | asimov-manager | | `operator` | Audio only | Yes | Viewing + teleop | Generate tokens with `scripts/generate_token.py`: ```bash # Robot token (long-lived) ./scripts/generate_token.py --role robot --ttl 8760 # Operator token (short-lived) ./scripts/generate_token.py --role operator --ttl 24 ```