go2rtc-client
Python client for go2rtc
What it is and what it does
go2rtc-client is an async Python wrapper for the go2rtc media server, a tool that handles WebRTC streaming and protocol bridging. It lets you programmatically control and query a go2rtc instance from Python code—starting streams, checking status, managing connections—without blocking your event loop. The package depends on aiohttp for HTTP communication, mashumaro and orjson for efficient data serialization, awesomeversion for version handling, and webrtc-models for media type definitions.
The library targets Python 3.12.0 or later and is in active development (Alpha status). It's maintained by the Home Assistant project and sees regular updates. With a top-tier popularity ranking, it's used primarily in home automation and media streaming contexts where async I/O and WebRTC integration matter.
Use it for:
- Integrate WebRTC streaming into a Home Assistant automation or custom smart-home application
- Build a dashboard or control panel that queries and manages multiple go2rtc instances asynchronously
- Programmatically start, stop, or monitor media streams from a go2rtc server in a Python service
- Add real-time video streaming capabilities to a Python application without blocking the event loop
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Asynchronous Python client library for communicating with go2rtc servers, enabling WebRTC streaming and media control over a network interface.
Yes, if you need to control a go2rtc server from Python. The package is actively maintained, has no known vulnerabilities, installs cleanly, and carries a permissive license. The Alpha status suggests stable-enough maturity for production use in Home Assistant integrations and similar contexts. Not worth installing if you don't have a go2rtc instance to communicate with.
Install
go2rtc-client on PyPI
pip
pip install go2rtc-clientuv
uv add go2rtc-clientpoetry
poetry add go2rtc-clientInstalling go2rtc-client
Before you install
Low friction install with a pure-Python wheel distribution. The package is actively maintained with a recent release and uses a lean dependency stack of five runtime libraries, all common and well-established.
License in practice
Apache-2.0 permissive license allows free use, modification, and distribution in both open-source and commercial projects with minimal restrictions.
Quickstart
import asyncio
from go2rtc_client import Go2rtcClient
async def main():
async with Go2rtcClient('http://localhost') as client:
streams = await client.get_streams()
print(streams)
asyncio.run(main())
Requires a running go2rtc server accessible at the specified URL; Python 3.12.0 or later.
Verify before relying
- Specific go2rtc server version compatibility requirements beyond Python 3.12.0
- Whether webrtc-models dependency is a compiled extension or pure Python
- Real-world performance characteristics with concurrent connections
- Default or typical port/URL for go2rtc server communication
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.12.0) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — aiohttp, awesomeversion, mashumaro, orjson, webrtc-models |
| Maintenance | actively maintained — 238 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 158,058/month — #10,736 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: go2rtc_client-0.4.0-py3-none-any.whl
Keywords: go2rtc, stream, webrtc
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
rokuecpAn asynchronous Python client for controlling…
permissive · top 15,000 on PyPI
webrtc-modelsProvides Python data classes that implement the…
permissive · top 15,000 on PyPI
elgatoAsynchronous Python client for controlling and…
permissive · top 15,000 on PyPI
aiortcaiortc is a Python library implementing WebRTC…
permissive · top 5,000 on PyPI
livekitPython SDK for building real-time video, audio,…
permissive · top 5,000 on PyPI
wledAn asynchronous Python client library for…
permissive · top 15,000 on PyPI
radiosAn async Python client for querying the Radio…
permissive · top 15,000 on PyPI
aiortspProvides asyncio-based RTSP client…
copyleft · top 15,000 on PyPI
aioiceaioice implements Interactive Connectivity…
permissive · top 5,000 on PyPI
ntgcallsNTgCalls provides Python bindings to a C++…
unclear · top 15,000 on PyPI