Metadata-Version: 2.4
Name: onvif-python
Version: 0.4.3
Summary: A modern Python library for ONVIF-compliant devices
Author-email: Nirsimetri Technologies® <open@nirsimetri.com>
Maintainer: Kaburagi
License-Expression: MIT
Project-URL: Homepage, https://github.com/nirsimetri/onvif-python
Project-URL: Documentation, https://nirsimetri.github.io/onvif-python
Project-URL: Changelog, https://github.com/nirsimetri/onvif-python/releases
Project-URL: Issues, https://github.com/nirsimetri/onvif-python/issues
Keywords: onvif,Camera,onvif python,ip camera,cctv,soap,surveillance,cctv cameras,soap client,onvif client,onvif library,onvif specifications
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Security
Classifier: Topic :: Multimedia :: Video
Classifier: Topic :: Multimedia :: Sound/Audio
Classifier: Topic :: Communications
Classifier: Topic :: Text Processing :: Markup :: XML
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: zeep<4.4.0,>=4.3.0
Requires-Dist: requests<3.0.0,>=2.32.0
Requires-Dist: pyreadline3<4.0.0,>=3.5.4; sys_platform == "win32"
Provides-Extra: dev
Requires-Dist: pytest<10.0,>=8.0; extra == "dev"
Requires-Dist: pytest-cov<7.0,>=6.0; extra == "dev"
Requires-Dist: black<27.0,>=26.0; extra == "dev"
Requires-Dist: mypy<2.0,>=1.0; extra == "dev"
Requires-Dist: isort<7.0,>=6.0; extra == "dev"
Requires-Dist: pylint<4.3.0,>=4.1.2; extra == "dev"
Requires-Dist: pylint-pytest<2.0,>=1.1; extra == "dev"
Requires-Dist: docformatter<2.0,>=1.0; extra == "dev"
Requires-Dist: codespell<3.0,>=2.0; extra == "dev"
Requires-Dist: lxml-stubs; extra == "dev"
Requires-Dist: types-setuptools; extra == "dev"
Requires-Dist: types-requests; extra == "dev"
Provides-Extra: docs
Requires-Dist: mkdocs-material<10.0.0,>=9.7.7; extra == "docs"
Requires-Dist: mkdocstrings[python]<3.0.0,>=1.0.0; extra == "docs"
Requires-Dist: mkdocs-git-authors-plugin<1.0.0,>=0.10.0; extra == "docs"
Dynamic: license-file

# ONVIF Python

[![Python Version](https://img.shields.io/pypi/pyversions/onvif-python?logo=python&logoColor=white&color=blue&style=plastic&label=Python)](https://pypi.org/project/onvif-python)
[![PyPI Version](https://img.shields.io/pypi/v/onvif-python?logo=pypi&logoColor=white&color=blue&style=plastic&label=PyPI)](https://pypi.org/project/onvif-python/)
[![Quality](https://img.shields.io/codacy/grade/bff08a94e4d447b690cea49c6594826d?style=plastic&logo=codacy&label=Quality)](https://app.codacy.com/gh/nirsimetri/onvif-python/dashboard)
[![Coverage](https://img.shields.io/codacy/coverage/bff08a94e4d447b690cea49c6594826d?style=plastic&logo=codacy&label=Coverage)](https://app.codacy.com/gh/nirsimetri/onvif-python/coverage)
[![Downloads](https://img.shields.io/pepy/dt/onvif-python?label=Downloads&color=red&style=plastic)](https://pepy.tech/projects/onvif-python)
<br>
[![Build](https://img.shields.io/github/actions/workflow/status/nirsimetri/onvif-python/python-app.yml?logo=github&style=plastic&label=Build)](https://github.com/nirsimetri/onvif-python/actions/workflows/python-app.yml)
[![Upload Python](https://img.shields.io/github/actions/workflow/status/nirsimetri/onvif-python/python-publish.yml?logo=github&style=plastic&label=Upload%20Package)](https://github.com/nirsimetri/onvif-python/actions/workflows/python-publish.yml)
[![CLI Cross-Platform](https://img.shields.io/github/actions/workflow/status/nirsimetri/onvif-python/cli-cross-platform.yml?logo=github&style=plastic&label=CLI%20Cross-Platform)](https://github.com/nirsimetri/onvif-python/actions/workflows/cli-cross-platform.yml)


**[ONVIF](https://www.onvif.org) (Open Network Video Interface Forum)** is a global standard for the interface of IP-based physical security products, including network cameras, video recorders, and related systems.  

Behind the scenes, ONVIF communication relies on **[SOAP](https://en.wikipedia.org/wiki/SOAP) (Simple Object Access Protocol)**; an [XML](https://en.wikipedia.org/wiki/XML)-based messaging protocol with strict schema definitions ([WSDL](https://en.wikipedia.org/wiki/Web_Services_Description_Language)/[XSD](https://en.wikipedia.org/wiki/XML_Schema_(W3C))). SOAP ensures interoperability, but when used directly it can be verbose, complex, and error-prone.  

This library simplifies that process by wrapping SOAP communication into a clean, Pythonic API. You no longer need to handle low-level XML parsing, namespaces, or security tokens manually; the library takes care of it, letting you focus on building functionality.

## Who Is It For?
- **Individual developers** exploring ONVIF or building hobby projects  
- **Companies** building video intelligence, analytics, or VMS platforms  
- **Security integrators** who need reliable ONVIF interoperability across devices

## Requirements

- **Python**: 3.10 or higher
- **Dependencies**:
  - [`zeep>=4.3.0`](https://github.com/mvantellingen/python-zeep) - SOAP client for ONVIF communication
  - [`requests>=2.32.0`](https://github.com/psf/requests) - HTTP library for network requests

## Installation

From official [PyPI](https://pypi.org/project/onvif-python/):
```shell
pip install --upgrade onvif-python
```

Or clone this repository and install locally:
```shell
git clone https://github.com/nirsimetri/onvif-python
cd onvif-python
pip install .
```

Once the installation is successful, you can also immediately access the [ONVIF CLI](https://nirsimetri.github.io/onvif-python/core/onvif_cli/) via the terminal using:
```shell
onvif --help
```

## Documentation

For complete guide, including usage examples and API references, please visit the [Documentation Page](https://nirsimetri.github.io/onvif-python/).

## License

This project is licensed under the MIT License. See [LICENSE](./LICENSE) for details.
