pikastream

$npx mdskill add vm0-ai/vm0-skills/pikastream

Join video meetings as a real-time AI avatar with voice cloning.

  • Enables agents to attend Google Meet or Zoom sessions automatically.
  • Depends on the Pika Developer API for authentication and session management.
  • Executes by checking credit balance and processing meeting join requests.
  • Delivers presence through live video streaming and synthesized voice output.

SKILL.md

.github/skills/pikastreamView on GitHub ↗
---
name: pikastream
description: Pika Developer API for joining video meetings (Google Meet, Zoom) as a real-time AI avatar with voice cloning. Use when user mentions "Pika", "PikaStream", "pikastream", "join a meeting as AI", "AI avatar meeting", or "video meeting bot".
---

## Troubleshooting

If requests fail, run `zero doctor check-connector --env-name PIKA_TOKEN` or `zero doctor check-connector --url https://srkibaanghvsriahb.pika.art/developer/balance --method GET`

## Base URL

```
https://srkibaanghvsriahb.pika.art
```

## Authentication

All requests use a `DevKey` header:

```
Authorization: DevKey $PIKA_TOKEN
```

## Core APIs

### Check Balance

```bash
curl -s "https://srkibaanghvsriahb.pika.art/developer/balance" \
  -H "Authorization: DevKey $PIKA_TOKEN" | jq '.data // .'
```

Returns `{ "balance": <int> }`. Minimum 100 credits required before joining a meeting.

### Join a Meeting

```bash
curl -s -X POST "https://srkibaanghvsriahb.pika.art/proxy/realtime/meeting-session" \
  -H "Authorization: DevKey $PIKA_TOKEN" \
  -H "X-Skill-Name: pikastream" \
  -F "meet_url=<google-meet-or-zoom-url>" \
  -F "bot_name=<display-name>" \
  -F "platform=<google_meet|zoom>" \
  -F "image=@<path-to-avatar.png>" \
  -F "voice_id=<voice-id>" \
  -F "system_prompt=<context for the bot>" | jq '.'
```

| Field | Required | Description |
|-------|----------|-------------|
| `meet_url` | Yes | Google Meet (`meet.google.com/...`) or Zoom URL |
| `bot_name` | Yes | Display name shown in the meeting |
| `platform` | Yes | `google_meet` or `zoom` (inferred from URL if omitted) |
| `image` | Yes | Avatar image file (portrait/headshot, PNG or JPG, > 1 KB) |
| `voice_id` | No | Voice clone ID. Default: `English_radiant_girl` |
| `system_prompt` | No | Background context for the bot's in-meeting conversation |
| `meeting_password` | No | Meeting password if required |

Returns: `{ "session_id": "...", "platform": "...", "status": "created" }`

### Poll Session Status

```bash
curl -s "https://srkibaanghvsriahb.pika.art/proxy/realtime/session/<session_id>" \
  -H "Authorization: DevKey $PIKA_TOKEN" | jq '{status, video_worker_connected, meeting_bot_connected}'
```

| `status` | Meaning |
|----------|---------|
| `created` | Bot is starting up |
| `ready` | Bot is live in the meeting |
| `error` | Something went wrong |
| `closed` | Session ended |

Poll every 2 seconds. The bot is ready when `status == "ready"` or both `video_worker_connected` and `meeting_bot_connected` are `true`. Default timeout: 90s.

### Leave a Meeting

```bash
curl -s -X DELETE "https://srkibaanghvsriahb.pika.art/proxy/realtime/session/<session_id>" \
  -H "Authorization: DevKey $PIKA_TOKEN" | jq '.'
```

Returns: `{ "session_id": "...", "closed": true }`

Billing stops when this call completes.

### List Topup Products

```bash
curl -s "https://srkibaanghvsriahb.pika.art/developer/topup/products" \
  -H "Authorization: DevKey $PIKA_TOKEN" | jq '.data // . | .products[]? | {name, numCredits, productId}'
```

### Create Topup Checkout

Write to `/tmp/pika_topup.json`:

```json
{
  "product_id": "<productId>"
}
```

```bash
curl -s -X POST "https://srkibaanghvsriahb.pika.art/developer/topup" \
  -H "Authorization: DevKey $PIKA_TOKEN" \
  -H "Content-Type: application/json" \
  -d @/tmp/pika_topup.json | jq '.data // . | {checkout_url}'
```

Returns a `checkout_url`. Share with the user to complete payment, then poll `/developer/balance` until balance ≥ 100.

## Guidelines

1. **Check balance first:** Always run the balance check before joining. Minimum 100 credits required.
2. **Avatar is mandatory:** The bot cannot join without an image file > 1 KB.
3. **Platform inference:** `meet.google.com` → `google_meet`; `zoom.us` or `zoom.com` → `zoom`.
4. **Voice clones expire:** Cloned voices are deleted after 7 days of non-use.
5. **Pricing:** $0.275/min, billed from join until `DELETE` is called.
6. **Post-meeting notes:** After leaving, the API may provide a meeting notes URL in the session response.

More from vm0-ai/vm0-skills

SkillDescription
account-reconciliationPerform account reconciliations comparing general ledger balances against subledgers, bank statements, or external records. Use for bank reconciliation, GL-to-subledger reconciliation, intercompany reconciliation, balance sheet reconciliation, reconciling item analysis, outstanding item aging, or clearing open items.
agentphoneBuild AI phone agents with AgentPhone API. Use when the user wants to make phone calls, send/receive SMS, manage phone numbers, create voice agents, set up webhooks, or check usage — anything related to telephony, phone numbers, or voice AI.
ahrefsAhrefs SEO API for backlink and keyword analysis. Use when user mentions
amplitudeAmplitude product analytics API. Use when user mentions "Amplitude",
analysis-qaQuality-check a data analysis before sharing — verify joins, aggregations, denominators, time ranges, and metric definitions. Detect pitfalls like survivorship bias, average-of-averages, join explosion, timezone mismatches, incomplete periods, and selection bias. Includes documentation templates for reproducible analyses.
anthropic-managed-agentsAnthropic Managed Agents API for programmatically creating, running, and streaming AI agents on Anthropic's cloud infrastructure. Use when the user mentions "Managed Agents", "Anthropic agent sessions", or needs to create/run/stream an Anthropic agent with tool use (bash, git, web), attach GitHub repositories, or inject secrets via Vault. Do NOT use for standard Claude Messages API — use the Claude API skill instead.
apifyApify web scraping platform. Use when user mentions "scrape website",
asanaAsana API for tasks and projects. Use when user mentions "Asana", "asana.com",
atlassianAtlassian API for Confluence and Jira. Use when user mentions "Confluence
attioAttio REST API for AI-native CRM operations — manage companies, people, deals, and custom objects, plus notes, tasks, lists, and comments. Use when the user mentions "Attio", "CRM record", "create company", "add person", "list entry", "CRM note", or "CRM task".