synthesia-interactive-avatar
Installation
SKILL.md
Synthesia Interactive Avatar Integration
The Synthesia Interactive Avatar is a plugin component for LiveKit Agents (Python). It renders a photoreal, lip-synced avatar and publishes it into the LiveKit room as a regular participant. The agent produces speech exactly as it always does; the component reroutes that audio to Synthesia's hosted avatar worker, which broadcasts synced audio + video back to the room.
This skill assesses what the user already has, picks ONE integration pathway, and implements it.
Constraints — read before doing anything
These shape every recommendation. State them to the user up front if they're relevant:
- Access-gated. The API key must come from a Synthesia workspace with Interactive Avatar access; other keys are rejected (
SynthesiaError,typeAUTHorFEATURE_NOT_IN_PLAN). If the user has no key, stop and point them to the Synthesia developer console — nothing you build will run without it. - Python only. The plugin targets the Python LiveKit Agents framework, Python 3.10+. Node.js agents are not supported.
- Default avatar: Kenji,
"7572faa9-15da-400d-8227-ef1ab8932523".AvatarConfigtakesavatar_ids: a list of one to five gallery ids. The first is the active avatar; the rest are precomputed soswap_avatar()can switch to them mid-session. Use Kenji alone unless the user names other avatars available to their workspace — inaccessible ids raiseSynthesiaErrorwithtypeUNKNOWN_AVATARatstart(), and a bare string instead of a list raisesValueError. - No sandbox. Unlike some competitors, there is no free sandbox avatar — every session counts against the workspace's quota (
SynthesiaErrorwithtypeQUOTA_EXCEEDED, HTTP 402, on cap). - Install from PyPI:
pip install "livekit-plugins-synthesia~=1.8"(or theuv addequivalent).
Step 1: Discover what the user has
Check the codebase and conversation before asking anything. Do not ask questions the codebase already answers.