First use-case
Demo Factory
Playwright records OpenChat → ElevenLabs speaks the thesis → Blotato posts 3 videos per day on X and Instagram.
Pipeline
- Plan — 3 scripts (thesis / library / live data chat)
- Record — Playwright Chromium walkthrough of /chat, /library, /docs
- Voice — ElevenLabs TTS per slot → voiceover.mp3
- Publish — Blotato schedules each video to
x+instagramat 10:00 / 14:00 / 18:00 (6 posts/day)
Env
BLOTATO_API_KEY= ELEVENLABS_API_KEY= ELEVENLABS_VOICE_ID= # optional OPENCHAT_DEMO_BASE_URL=http://127.0.0.1:3000 ALLOW_DEMO_PIPELINE_ANON=1 # local API without login
Install Playwright for real video:
pnpm add -D playwright pnpm exec playwright install chromium
Run
- Agent in chat: /chat?agent=openchat-demo-daily
- API:
GET/POST /api/openchat/demo-pipeline - Library: Demo Factory template
# Dry-run (no keys): writes plans + schedule JSON
curl -X POST http://127.0.0.1:3000/api/openchat/demo-pipeline \
-H 'Content-Type: application/json' \
-d '{"skipRecord":true}'
# Artifacts → data/lake/tmp/demos/YYYY-MM-DD/Open code
- lib/openchat/connectors/playwright.ts
- lib/openchat/connectors/elevenlabs.ts
- lib/openchat/connectors/blotato.ts
- lib/openchat/pipelines/demo-daily.ts
- lib/openchat/templates/openchat-demo-daily.ts