skillfed

go2rtc-client

Python client for go2rtc

go2rtc-client v0.4.0 158.1K downloads/30d#10,736 on PyPI6
Permissive license Apache-2.0 Active released

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-client

uv

uv add go2rtc-client

poetry

poetry add go2rtc-client

Installing 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

Development Status :: 3 - AlphaIntended Audience :: DevelopersProgramming Language :: Python :: 3.12

Tags

go2rtc client pythonwebrtc streaming clientasync rtc communicationgo2rtc server integrationmedia stream control python
webrtcasync-iostreaming

More WWW/HTTP packages