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")
camera.login()

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

# Manage the license plate whitelist/blacklist
plates = camera.get_plates()
camera.add_plate("ABC1234", owner="Mike", list_type="whiteList")
camera.delete_plate(key_id=1775415327)

camera.logout()

# 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.0.0.tar.gz (13.1 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.0.0-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for viewtron-1.0.0.tar.gz
Algorithm Hash digest
SHA256 5635cef022b88842d1320a363977a28e8032af0cf8e464dd7668875bd68197b9
MD5 ec1fb46f1f51117f4086ee469d80edb5
BLAKE2b-256 c5423df6eb473f428e2a9fed4a0eeb07af8884a218bf18c9115ebfd8da3bbb95

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for viewtron-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cc8c28152a089c2f2cf59fa446569948ac78d942b2896b3c0a75388667b1447b
MD5 a00b1ed780eac62ed692663d85c439db
BLAKE2b-256 3414957356e3d01057305dfefbdc586f3bf3b3b6714dc8ae7e70fc949ddfa5b1

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