https://github.com/silvestrinigor/axis_vapix
Python-based API handler for interacting with Axis devices using the VAPIX APIs.
https://github.com/silvestrinigor/axis_vapix
api api-client axis camera python requests vapix
Last synced: 12 months ago
JSON representation
Python-based API handler for interacting with Axis devices using the VAPIX APIs.
- Host: GitHub
- URL: https://github.com/silvestrinigor/axis_vapix
- Owner: silvestrinigor
- License: mit
- Created: 2024-12-08T22:09:25.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-09T17:06:01.000Z (about 1 year ago)
- Last Synced: 2025-05-07T01:42:48.173Z (about 1 year ago)
- Topics: api, api-client, axis, camera, python, requests, vapix
- Language: Python
- Homepage:
- Size: 212 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Axis VAPIX Python API Handler
This project provides a Python-based API handler for interacting with [Axis](https://www.axis.com/) devices using the [VAPIX APIs](https://developer.axis.com/vapix).
## Quick Start
Install the library:
```bash
pip install git+https://github.com/silvestrinigor/axis_vapix
```
### Example: Get Basic Device Information
```python
from axis.vapix import basic_device_information
import requests
import requests.auth
auth = requests.auth.HTTPDigestAuth("root", "pass")
api = basic_device_information.BasicDeviceInformationRequest("192.168.0.90", 80, auth)
request = api.getProperties([basic_device_information.DevicePropertyType.ARCHITECTURE, basic_device_information.DevicePropertyType.BRAND])
with requests.Session() as session:
response = session.send(request.prepare())
print(response.text)
# Output
{"apiVersion": "1.3", "data": {"propertyList": {"Brand": "AXIS", "Architecture": "armv7hf"}}}
```
---
### Example: Set Time
```python
from axis.vapix import time_api
import requests
import requests.auth
from datetime import datetime, timezone, timedelta
auth = requests.auth.HTTPDigestAuth("root", "pass")
api = time_api.TimeApiRequest("192.168.0.90", 80, auth)
time_now = datetime.now(timezone(timedelta(hours=-3)))
request = api.setDateTime(time_now)
with requests.Session() as session:
response = session.send(request.prepare())
print(response.text)
# Output
{
"apiVersion": "1.0",
"method": "setDateTime",
"data": {
"dateTime": "2025-04-09T15:51:39Z"
}
}
```
---
### Example: Add Text Overlay
```python
from axis.vapix import overlay_api
import requests
import requests.auth
auth = requests.auth.HTTPDigestAuth("root", "pass")
api = overlay_api.DynamicOverlayApiRequest("192.168.0.90", 80, auth)
overlay = overlay_api.TextOverlay(
camera=1,
text=r"%d - %m - %Y - %X",
textColor=overlay_api.OverlayColorType.RED.value
)
request = api.addText(overlay)
with requests.Session() as session:
response = session.send(request.prepare())
print(response.text)
# Output
{
"apiVersion": "1.7",
"data": {
"camera": 1,
"identity": 3
},
"method": "addText"
}
```
---
## Supported APIs:
- Analytics Metadata Producer Configuration
- API Discovery service
- Basic device information
- Capture mode
- Firmware management API
- Loitering guard
- Network settings API
- NTP API
- AXIS Object analytics API
- Dynamic overlay API
- Time API
---
## License
This project is licensed under the MIT License. See the [LICENSE](./LICENSE) file for details.
---
## Contributing
Contributions are welcome! Please open an issue or submit a pull request on the [GitHub repository](https://github.com/silvestrinigor/axis_vapix).
---
## Support
For any issues or questions, please file a ticket on the [GitHub Issues page](https://github.com/silvestrinigor/axis_vapix/issues).