Skip to main content

Python SDK for Viewtron IP camera API — parse inbound alarm events and control cameras

Project description

Viewtron Python SDK

Python SDK for Viewtron IP camera API. Parse inbound alarm events and control cameras programmatically.

Viewtron IP cameras run AI detection on-camera (license plate recognition, face detection, human/vehicle detection) and send HTTP POST events to your server. This SDK parses those events and provides an API client for camera control.

Install

pip install viewtron

Inbound Events — Parse Camera Alarm Data

Viewtron cameras and NVRs send XML alarm events via HTTP POST. This SDK parses them into Python objects.

from viewtron import LPR, FaceDetection, IntrusionDetection

# In your HTTP server's POST handler:
lpr_event = LPR(request_body)
print(lpr_event.get_plate_number())       # "ABC1234"
print(lpr_event.is_plate_authorized())    # True (plate is on camera whitelist)

# Images are included as base64
if lpr_event.source_image_exists():
    overview = lpr_event.get_source_image()   # base64 JPEG — full scene
if lpr_event.target_image_exists():
    plate_crop = lpr_event.get_target_image() # base64 JPEG — plate closeup

Supported Event Types

Source Class Detection
IPC v1.x LPR License plate recognition with whitelist/blacklist
IPC v1.x FaceDetection Face detection with crop image
IPC v1.x IntrusionDetection Perimeter intrusion (person/vehicle)
IPC v1.x IntrusionEntry Zone entry
IPC v1.x IntrusionExit Zone exit
IPC v1.x LoiteringDetection Loitering
IPC v1.x VideoMetadata Continuous object detection
NVR v2.0 VehicleLPR LPR with vehicle brand/color/type
NVR v2.0 FaceDetectionV2 Face detection with age/sex/glasses/mask
NVR v2.0 RegionIntrusion Perimeter intrusion
NVR v2.0 LineCrossing Tripwire line crossing
NVR v2.0 TargetCountingByLine People/vehicle counting by line
NVR v2.0 TargetCountingByArea People/vehicle counting by area
NVR v2.0 VideoMetadataV2 Continuous object detection

Version detection is automatic — IPC v1.x and NVR v2.0 use different XML structures but the SDK handles both.

Outbound API — Control the Camera

from viewtron import ViewtronCamera

camera = ViewtronCamera("192.168.0.20", "admin", "password")

# Device info
info = camera.get_device_info()
print(info["model"])  # "LPR-IP4"

# Manage the license plate database
plates = camera.get_plates()
camera.add_plate("ABC1234")
camera.modify_plate("ABC1234", owner="Mike", telephone="555-1234")
camera.delete_plate("ABC1234")

# Or use as context manager
with ViewtronCamera("192.168.0.20", "admin", "password") as cam:
    plates = cam.get_plates()

Projects Using This SDK

Documentation

Products

Author

Mike Haldas — CCTV Camera Pros mike@cctvcamerapros.net

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

viewtron-1.2.0.tar.gz (15.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

viewtron-1.2.0-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file viewtron-1.2.0.tar.gz.

File metadata

  • Download URL: viewtron-1.2.0.tar.gz
  • Upload date:
  • Size: 15.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.7

File hashes

Hashes for viewtron-1.2.0.tar.gz
Algorithm Hash digest
SHA256 32a19b71b6b5f8dbdf45fc8f24889ee3ea3a00694a2b8bb9e4a1687cfb725f79
MD5 3a510dfb6cc0833dd38b4faca78179a4
BLAKE2b-256 cf4f23e3bbd7f2495be94f259ca828e4ab578d53acc7470a67b55a94c45a3c48

See more details on using hashes here.

File details

Details for the file viewtron-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: viewtron-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.7

File hashes

Hashes for viewtron-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3c8ca8a09f8818c68ddab2288337ce7185f2f20a71d2700cfa6aaa68028457f6
MD5 65c24f57707ff64b933fede2e30ef379
BLAKE2b-256 a0f9f9c6717969c5574d473cd87a17441211a5ff1506cf45fd3828a14e29b3e0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page