Protoface Pipecat Plugin
Add Protoface video avatars to Pipecat pipelines.
Maintained by Protoface.
Installation
pip install pipecat-protoface
Or with uv:
uv add pipecat-protoface
Install the Pipecat extras required by your application separately, such as the transport, LLM, STT, or TTS services in your pipeline.
For this repo's WebRTC example:
uv sync --extra dev --extra example
If you prefer pip:
pip install -e ".[dev,example]"
Prerequisites
- Protoface API key (
PROTOFACE_API_KEY) - Protoface avatar ID (
PROTOFACE_AVATAR_ID) - API keys for the Pipecat services used by your pipeline
Usage
ProtofaceVideoService starts a hosted Protoface avatar session. It consumes
TTSAudioRawFrame audio from a Pipecat pipeline and emits synchronized
SpeechOutputAudioRawFrame and OutputImageRawFrame frames downstream.
Your application still chooses the Pipecat transport for the end user.
import os
from pipecat_protoface import ProtofaceVideoService
protoface = ProtofaceVideoService(
api_key=os.environ["PROTOFACE_API_KEY"],
avatar_id=os.environ["PROTOFACE_AVATAR_ID"],
)
pipeline = Pipeline([
transport.input(),
stt,
context_aggregator.user(),
llm,
tts,
protoface, # Video avatar (returns synchronized audio/video)
transport.output(),
context_aggregator.assistant(),
])
For realtime speech-to-speech services, place ProtofaceVideoService after your
realtime LLM service and before the output transport:
pipeline = Pipeline([
transport.input(),
gemini_live,
protoface,
transport.output(),
])
See examples/video_service.py for a complete WebRTC example using Gemini Live.
Session Startup
ProtofaceVideoService starts a hosted Protoface avatar session when the
pipeline starts. Audio produced before the avatar session is ready is buffered,
then streamed once the connection is available.
Running the Example
- Install dependencies:
uv sync --extra dev --extra example
- Set up your environment:
cp env.example .env
# Edit .env with your keys:
# PROTOFACE_API_KEY
# PROTOFACE_AVATAR_ID
# GOOGLE_API_KEY or GEMINI_API_KEY
#
# GEMINI_LIVE_MODEL and GEMINI_VOICE are optional.
- Run the
ProtofaceVideoServiceexample with the built-in WebRTC transport:
uv run python examples/video_service.py -t webrtc
The example reads either GOOGLE_API_KEY or GEMINI_API_KEY.
By default, the plugin connects to https://api.protoface.com; set
PROTOFACE_API_URL only when testing against another Protoface environment.
Set PROTOFACE_DEBUG_MEDIA=1 to log avatar audio/video frame counts during
local testing.
Compatibility
- Pipecat v1.4.0+
- Python 3.11+
- Built-in WebRTC transport for the included example
License
Apache-2.0 - see LICENSE
Metadata
Release files for pipecat-protoface 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pipecat_protoface-0.1.0.tar.gz | 22.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pipecat_protoface-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.4 kB
Release files / pipecat_protoface-0.1.0.tar.gz
| Download URL | pipecat_protoface-0.1.0.tar.gz |
|---|---|
| Size | 22.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aefd015a3b3f0e7cbbd63e1cb98b39cf3888f47ea5f9e8884ebe0b28f0bc490a
|
|
BLAKE2b-256 checksum How to use checksums |
a21fdb6a512a29c7453c5d55f23118a50d9efd53cbdc6a30afe782c553a91b3f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.
Transparency logRelease files / pipecat_protoface-0.1.0-py3-none-any.whl
| Download URL | pipecat_protoface-0.1.0-py3-none-any.whl |
|---|---|
| Size | 17.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2cc5ea8a0f43f4fd0cd3eb37b8dc85aff5b4cf9c92c0364d783e9bd68c2acd2c
|
|
BLAKE2b-256 checksum How to use checksums |
efe6915501c37579bb340c009a4717cfe469fcec59e7fea745b5ba333622f962
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 27, 2026.
Transparency log