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.3.0.tar.gz (20.0 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.3.0-py3-none-any.whl (17.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for viewtron-1.3.0.tar.gz
Algorithm Hash digest
SHA256 3b34b02c3c1618ab096e1a15a1f67d61ceefad3d897fd823d35c52b9166f919b
MD5 3c0d386e2180c5e836339b86de634c10
BLAKE2b-256 63ec2cdaae776b0d755dc1092e7f48b1611b95f998e34d57eadfaa2207b2abe2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: viewtron-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 17.8 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d20a8b50bb5b13e7bea2a5be90ce1a79cd186654b36fb2cbdb711e368a5fb898
MD5 76fb998fb998ca2297da395de750aac4
BLAKE2b-256 b77b11df8c7f01830f1af45dc93ee661f7f244ba253288e468563e4159674ff4

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