Python Arlo is a library written in Python 2.7/3x that exposes the Netgear Arlo cameras as Python objects.
Developer Documentation: http://python-arlo.readthedocs.io/
$ pip install pyarlo
# Install latest development
$ pip install git+https://github.com/tchellomello/python-arlo@dev# connectingfrompyarloimportPyArloarlo=PyArlo('foo@bar', 'secret')
# listing devicesarlo.devices# listing base stationsarlo.base_stations# get base station handle# assuming only 1 base station is availablebase=arlo.base_stations[0]
# listing Arlo modesbase.available_modes
['armed', 'disarmed', 'schedule', 'custom']
# listing all camerasarlo.cameras# showing camera preferencescam=arlo.cameras[0]
# check if camera is connected to base stationcam.is_camera_connectedTrue# setting a modecam.mode='armed'# getting the current active modecam.mode'armed'# printing camera attributescam.serial_numbercam.model_idcam.unseen_videos# get brightness value of cameracam.get_brightness# get signal strength of camera with base stationcam.get_signal_strength# get flip property from cameracam.get_flip_state# get mirror property from cameracam.get_mirror_state# get power save mode value from cameracam.get_powersave_mode# get current battery level of cameracam.get_battery_level92# get boolean result if motion detection# is enabled or notcam.is_motion_detection_enabledTrue# get battery levels of all cameras# prints serial number and battery level of each camerabase.get_camera_battery_level
{'4N71235T12345': 92, '4N71235T12345': 90}
# get base station propertiesbase.get_basestation_properties# get camera propertiesbase.get_camera_properties# get camera rulesbase.get_camera_rules# get camera schedulebase.get_camera_schedule# get camera motion detection sensitivitycam.get_motion_detection_sensitivity# refreshing camera propertiescam.update()
# gathering live_streaming URLcam.live_streaming()
rtmps://vzwow72-z2-prod.vz.netgear.com:80/vzmodulelive?egressToken=b723a7bb_abbXX&userAgent=web&cameraId=48AAAAA# gather last recorded video URLcam.last_video.video_url# by default, all videos recorded within# the last 30 days will be pre-loadedarlo.ArloMediaLibrary.videos# Or you can load Arlo videos directlyfrompyarlo.mediaimportArloMediaLibrarylibrary=ArloMediaLibrary(arlo, days=2)
len(library.videos)
# showing a video propertiesmedia=library.videos[0]
# printing video attributesmedia.cameramedia.content_typemedia.media_duration_seconds# displaying thumbnail to stdoutmedia.download_thumbnail()
# downloading videomedia.download_video('/home/user/demo.mp4')See more at CONTRIBUTING.rst