skillfed

onvif-zeep-async

Async Python Client for ONVIF Camera

onvif-zeep-async v4.2.1 162.4K downloads/30d#10,604 on PyPI49
Permissive license MIT Active released

What it is and what it does

This package provides an async Python client for ONVIF IP cameras, wrapping the zeep SOAP/WSDL engine with aiohttp for fully non-blocking network I/O. Every camera operation—hostname retrieval, PTZ control, stream configuration—is awaitable, making it suitable for concurrent camera management in asyncio applications. The package bundles WSDL files so you don't need to download them separately, and it handles WS-Security authentication (with optional digest encryption), clock skew compensation, and NAT URL rewriting for cameras behind port forwards.

You instantiate an ONVIFCamera with IP, port, and credentials, call update_xaddrs() to discover available services, then invoke operations like devicemgmt.GetHostname() or ptz.GetConfiguration() as async methods. The package exposes every ONVIF operation defined in the bundled WSDLs and lets you create custom services if needed. It depends on aiohttp for transport, zeep for SOAP/WSDL parsing, ciso8601 for fast timestamp parsing, and yarl for URL handling.

Use it for:

  • Monitor and control multiple IP cameras concurrently in a single asyncio event loop without blocking.
  • Retrieve camera metadata (hostname, system time, network config) and configure settings like date/time or hostname.
  • Automate PTZ (pan-tilt-zoom) camera movements and stream URI discovery for video playback.
  • Build a camera management dashboard or integration layer that queries many cameras in parallel.
  • Handle cameras behind NAT by rewriting advertised URLs to match your port-forward configuration.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Async Python client for ONVIF IP cameras using asyncio and aiohttp, enabling awaitable SOAP calls to camera services like device management and PTZ control.

Yes. Active maintenance, low install friction, permissive MIT license, no known vulnerabilities, and a clear async-first design make this a solid choice for Python 3.10+ projects that need ONVIF camera control. Install if you're building asyncio-based camera management or monitoring; skip if you need synchronous I/O or support for Python versions below 3.10.

Install

onvif-zeep-async on PyPI

pip

pip install onvif-zeep-async

uv

uv add onvif-zeep-async

poetry

poetry add onvif-zeep-async

Installing onvif-zeep-async

Before you install

Low friction: pure Python wheel with five runtime dependencies (aiohttp, httpx, zeep, ciso8601, yarl). Active maintenance—last commit 2026-08-10, release 39 days old, no archived status.

License in practice

MIT license is permissive; you can use, modify, and distribute this package with minimal restrictions in commercial or open-source projects.

Quickstart

pip install onvif-zeep-async

import asyncio
from onvif import ONVIFCamera

async def main():
    cam = ONVIFCamera('192.168.0.2', 80, 'user', 'passwd')
    await cam.update_xaddrs()
    resp = await cam.devicemgmt.GetHostname()
    print(resp.Name)
    await cam.close()

asyncio.run(main())

Requires Python 3.10 or newer; camera must be reachable on the network and support ONVIF protocol.

Verify before relying

  • Whether bundled WSDL files cover all ONVIF camera models or only a subset of the ONVIF specification.
  • Performance characteristics when managing multiple concurrent camera connections.
  • Compatibility with non-standard ONVIF implementations or vendor-specific extensions.

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 5 — aiohttp, httpx, zeep, ciso8601, yarl
Maintenance actively maintained — 39 days since the last release
Last repo commit
First released
Downloads 162,416/month — #10,604 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: onvif_zeep_async-4.2.1-py3-none-any.whl

Keywords: ONVIF, Camera, IPC

Tags

ONVIF camera client asyncIP camera control Pythonasyncio SOAP cameranetwork camera managementPTZ camera automationONVIF device communicationasync camera API
onvif-protocolip-cameraasyncio

More Networking packages