Official Python SDK for the WAVE API by WAVE Inc.
fromwaveimportWavewave=Wave(api_key="your-api-key", organization_id="org_123")
# Create and start a live streamstream=wave.pipeline.create(title="My Stream", protocol="webrtc")
wave.pipeline.start(stream.id)
health=wave.pipeline.get_health(stream.id)
print(f"Viewers: {health['viewer_count']}")
# Create a virtual camera from NDIdevice=wave.prism.create_device(
name="PTZ Camera 1",
type="camera",
source_protocol="ndi",
source_endpoint="NDI-CAM-1",
node_id="node_abc",
ptz_enabled=True,
)
# Get analyticsviewers=wave.pulse.get_viewer_analytics(time_range="24h")| API | Description |
|---|
wave.pipeline | Live streaming engine |
wave.studio | Multi-camera production |
| API | Description |
|---|
wave.fleet | Device fleet management |
wave.ghost | AI auto-directing |
wave.mesh | Multi-region failover |
wave.edge | CDN and edge workers |
wave.pulse | Analytics and BI |
wave.prism | Virtual Device Bridge |
wave.zoom | Zoom integration |
| API | Description |
|---|
wave.clips | Video clips |
wave.editor | Video editor |
wave.voice | Voice synthesis |
wave.phone | Phone calls |
wave.collab | Collaboration |
wave.captions | Auto-captions |
wave.chapters | Video chapters |
wave.studio_ai | AI assistant |
wave.transcribe | Transcription |
wave.sentiment | Sentiment analysis |
wave.search | Content search |
wave.scene | Scene detection |
wave.vault | Recording storage |
wave.marketplace | Marketplace |
wave.connect | Integrations |
wave.distribution | Social simulcast |
wave.desktop | Desktop Node |
wave.signage | Digital signage |
wave.qr | QR codes |
wave.audience | Polls/Q&A |
wave.creator | Monetization |
| API | Description |
|---|
wave.podcast | Podcast production |
wave.slides | Slides-to-video |
wave.usb | USB relay |
fromwaveimportWaveError, RateLimitErrortry:
wave.pipeline.get("invalid-id")
exceptRateLimitErrorase:
print(f"Rate limited. Retry after {e.retry_after}s")
exceptWaveErrorase:
print(f"{e.code}: {e.message} ({e.status_code})")MIT - WAVE Inc.