Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
e543090
docs: Documentation overhaul
kaburagisec Oct 9, 2026
c020aa9
fix(docs): Fix missing link
kaburagisec Oct 9, 2026
3afe845
docs: Enhance documentation structure and styling
kaburagisec Oct 11, 2026
42acf89
fix(docs): Add missing analytics icons
kaburagisec Oct 11, 2026
3b2a152
fix(docs): Fix spelling
kaburagisec Oct 11, 2026
4537b2b
ci: Update fetch-depth for checkout step in docs preview workflow
kaburagisec Oct 11, 2026
9232e0c
fix(docs): Fix typo in documentation
kaburagisec Oct 11, 2026
0454c59
docs: Update TOC separators for better responsiveness and styling
kaburagisec Oct 11, 2026
a64f651
Revert "ci: Update fetch-depth for checkout step in docs preview work…
kaburagisec Oct 12, 2026
406b161
style(docs): Refactor CSS for rounded elements and adjust table code …
kaburagisec Oct 12, 2026
7f37b4d
fix(docs): Correct capitalization in Keystore title and reorder image…
kaburagisec Oct 12, 2026
840b7a4
fix(docs): Update docstring formatting for clarity in ONVIFService class
kaburagisec Oct 12, 2026
410ddad
Merge branch 'dev' into docs/overhaul
kaburagisec Oct 12, 2026
4b5eda8
feat(docs): Add custom 404 error page
kaburagisec Oct 12, 2026
9396f46
style(docs): Enhance CSS for hover effects
kaburagisec Oct 13, 2026
5647a12
fix(docs): Update service discovery documentation for clarity and acc…
kaburagisec Oct 13, 2026
1709db5
refactor(docs): Revamp section with a table format and add dependenci…
kaburagisec Oct 13, 2026
855f206
Merge branch 'docs/overhaul' of https://github.com/nirsimetri/onvif-p…
kaburagisec Oct 13, 2026
7a6d4bb
feat(docs): Enhance external link handling and add content actions bu…
kaburagisec Oct 13, 2026
755a279
fix(docs): Update Open Graph and Twitter image URLs to correct asset
kaburagisec Oct 13, 2026
dc54cd4
feat(docs): Add llms.txt file
kaburagisec Oct 13, 2026
0137326
refactor(docs): Update descriptions for clarity and relevance in READ…
kaburagisec Oct 13, 2026
6a0dfe2
fix(docs): Correct terminology from "ONVIF-compatible" to "ONVIF-comp…
kaburagisec Oct 13, 2026
86c0027
fix(docs): Add GITHUB_REPOSITORY to global variables in JavaScript files
kaburagisec Oct 14, 2026
7149cd2
style(docs): Update styling
kaburagisec Oct 14, 2026
66f1384
fix(docs): Update version references from ">=vX.X.X" to "vX.X.X" for …
kaburagisec Oct 14, 2026
5163b96
feat(docs): Add smooth scroll behavior and back to top button styling…
kaburagisec Oct 14, 2026
f2429b4
style(docs): Update styling
kaburagisec Oct 14, 2026
66f37a6
fix(docs): Update download badge links for consistency in README and …
kaburagisec Oct 14, 2026
99f16ee
feat(docs): Implement section flash overlay for improved navigation e…
kaburagisec Oct 15, 2026
fccc8df
fix(docs): Exclude docs directory from mypy
kaburagisec Oct 16, 2026
53f6fec
feat(docs): Overhaul documentation structure and enhance content clarity
kaburagisec Oct 16, 2026
73454fe
feat(docs): Add hooks for Griffe extensions and miscellaneous functio…
kaburagisec Oct 16, 2026
c775a99
fix(docs): Fix shortcodes
kaburagisec Oct 16, 2026
b49de9b
docs: Enhance ONVIF module documentation and versioning
kaburagisec Oct 16, 2026
65adfe6
docs: Update badge links to use shield.io for consistency
kaburagisec Oct 17, 2026
7d23dca
docs: Overhaul documentation structure and enhance content clarity wi…
kaburagisec Oct 17, 2026
876af35
docs: Improve documentation clarity
kaburagisec Oct 17, 2026
e82e7a6
docs: Spelling fix
kaburagisec Oct 17, 2026
e2380d7
ci: Revert python version
kaburagisec Oct 17, 2026
7e9574a
Merge branch 'dev' into docs/overhaul
kaburagisec Oct 17, 2026
ad9536d
Merge branch 'dev' into docs/overhaul
kaburagisec Oct 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 69 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
# ONVIF Python
# ONVIF Python [![Downloads](https://img.shields.io/pypi/dm/onvif-python?label=Downloads&style=plastic)](https://pepy.tech/projects/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)
Expand All @@ -18,16 +17,71 @@ Behind the scenes, ONVIF communication relies on **[SOAP](https://en.wikipedia.o
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

<table>
<tr>
<th align="start">
<img
src="https://github.com/Templarian/MaterialDesign/blob/master/svg/account-hard-hat.svg"
width="24"
height="24"
valign="middle"
/>&nbsp;Individual Developers
</th>
<th align="start">
<img
src="https://github.com/Templarian/MaterialDesign/blob/master/svg/video-wireless.svg"
width="24"
height="24"
valign="middle"
/>&nbsp;Platform Developers
</th>
</tr>
<tr>
<td width="50%" valign="top">
<p>Explore ONVIF capabilities and build applications for IP cameras and compatible devices.</p>
</td>
<td width="50%" valign="top">
<p>Build video intelligence, analytics, and video management system (VMS) platforms.</p>
</td>
</tr>
<tr>
<th align="start">
<img
src="https://github.com/Templarian/MaterialDesign/blob/master/svg/cctv.svg"
width="24"
height="24"
valign="middle"
/>&nbsp;Security Integrators
</th>
<th align="start">
<img
src="https://github.com/Templarian/MaterialDesign/blob/master/svg/chip.svg"
width="24"
height="24"
valign="middle"
/>&nbsp;Device & IoT Engineers
</th>
</tr>
<tr>
<td width="50%" valign="top">
<p>Integrate security devices and troubleshoot ONVIF interoperability across vendors.</p>
</td>
<td width="50%" valign="top">
<p>Develop, test, and integrate ONVIF-compliant devices and IP-based physical security systems.</p>
</td>
</tr>
</table>

## 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
Python **3.10 or higher** is required.

## Dependencies

- [zeep](https://github.com/mvantellingen/python-zeep) → SOAP client for ONVIF communication.
- [requests](https://github.com/psf/requests) → HTTP library for network requests.
- [pyreadline3](https://github.com/pyreadline3/pyreadline3) → Only installed on Windows (`win32`) for CLI auto-completion.

## Installation

Expand All @@ -36,6 +90,12 @@ From official [PyPI](https://pypi.org/project/onvif-python/):
pip install --upgrade onvif-python
```

Or install using [pipx](https://pipx.pypa.io/stable/) for an isolated environment:
```shell
pipx install git+https://github.com/nirsimetri/onvif-python

```

Or clone this repository and install locally:
```shell
git clone https://github.com/nirsimetri/onvif-python
Expand Down
22 changes: 22 additions & 0 deletions docs/api/core/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
hide:
- toc
---

# Core API

<div class="grid cards" markdown>

- :material-lan-connect:{ .lg .middle }&nbsp; [**ONVIFClient**](onvif_client.md)

---

Connect to ONVIF devices, configure connections and authentication, and manage service access.

- :material-connection:{ .lg .middle }&nbsp; [**ONVIFOperator**](onvif_operator.md)

---

An **internal class** for coordinating ONVIF operations and managing service interactions.

</div>
12 changes: 10 additions & 2 deletions docs/api/core/onvif_client.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
# ONVIFClient
---
comments: true
---

::: onvif.client.ONVIFClient
options:
show_root_heading: true
show_root_full_path: true
docstring_options:
ignore_init_summary: true
show_source: true
docstring_style: google
members_order: source
members_order: source
heading_level: 2
merge_init_into_class: true
7 changes: 0 additions & 7 deletions docs/api/core/onvif_discovery.md

This file was deleted.

9 changes: 7 additions & 2 deletions docs/api/core/onvif_operator.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
# ONVIFOperator
---
comments: true
---

::: onvif.operator.ONVIFOperator
options:
show_root_heading: true
show_root_full_path: true
show_source: true
docstring_style: google
members_order: source
members_order: source
heading_level: 2
22 changes: 22 additions & 0 deletions docs/api/exceptions/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
hide:
- toc
---

# Exceptions

<div class="grid cards" markdown>

- :material-alert-circle-outline:{ .lg .middle }&nbsp; [**ONVIFOperationException**](onvif_exception.md)

---

Understand exceptions raised by failed ONVIF operations, including error details for diagnosing issues.

- :material-reload-alert:{ .lg .middle }&nbsp; [**Error Handlers**](onvif_error_handlers.md)

---

Explore error-handling utilities for processing and managing errors consistently across ONVIF operations.

</div>
9 changes: 7 additions & 2 deletions docs/api/exceptions/onvif_error_handlers.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
# Error Handlers
---
comments: true
---

::: onvif.utils.error_handlers
options:
show_root_heading: true
show_root_full_path: true
show_source: true
docstring_style: google
members_order: source
members_order: source
heading_level: 2
6 changes: 5 additions & 1 deletion docs/api/exceptions/onvif_exception.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
# ONVIFOperationException
---
comments: true
---

::: onvif.utils.ONVIFOperationException
options:
show_root_heading: true
show_root_full_path: true
show_source: true
docstring_style: google
members_order: source
46 changes: 46 additions & 0 deletions docs/api/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
hide:
- toc
---

# API Reference

<div class="grid cards" markdown>

- :material-hub-outline:{ .lg .middle }&nbsp; **Core**

---

Configure ONVIF connections and interact with devices through the main client interfaces.

---
[<span class="icon-link">:octicons-arrow-right-24: Explore Core</span>](core/index.md)

- :material-alert-circle-outline:{ .lg .middle }&nbsp; **Exceptions**

---

Understand operation exceptions and error-handling utilities for diagnosing and handling failures.

---
[<span class="icon-link">:octicons-arrow-right-24: Explore Exceptions</span>](exceptions/index.md)

- :material-toolbox-outline:{ .lg .middle }&nbsp; **Utilities**

---

Discover ONVIF devices, configure caching, manage WSDL resources, and extend service behavior.

---
[<span class="icon-link">:octicons-arrow-right-24: Explore Utilities</span>](utilities/index.md)

- :material-linked-services:{ .lg .middle }&nbsp; **Services**

---

Browse the available ONVIF service clients, from device management, events, PTZ, analytics, and more.

---
[<span class="icon-link">:octicons-arrow-right-24: Explore Services</span>](services/index.md)

</div>
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading
Loading