Skip to main content

Python Arlo is a library written in Python 2.7/3x that exposes the Netgear Arlo cameras as Python objects.

Project description

Python Arlo

https://badge.fury.io/py/pyarlo.svg https://travis-ci.org/tchellomello/python-arlo.svg?branch=master https://coveralls.io/repos/github/tchellomello/python-arlo/badge.svg?branch=master https://img.shields.io/pypi/pyversions/pyarlo.svg

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/

Installation

$ pip install pyarlo

# Install latest development
$ pip install git+https://github.com/tchellomello/python-arlo

Usage

# connecting
from pyarlo import PyArlo
arlo  = PyArlo('foo@bar', 'secret')

# listing devices
arlo.devices

# listing base stations
arlo.base_stations

# get base station handle
# assuming only 1 base station is available
base = arlo.base_stations[0]

# get the current base station mode
base.mode  # 'disarmed'

# listing Arlo modes
base.available_modes # ['armed', 'disarmed', 'schedule', 'custom']

# Updating the base station mode
base.mode = 'custom'

# listing all cameras
arlo.cameras

# showing camera preferences
cam = arlo.cameras[0]

# check if camera is connected to base station
cam.is_camera_connected  # True

# printing camera attributes
cam.serial_number
cam.model_id
cam.unseen_videos

# get brightness value of camera
cam.brightness

# get signal strength of camera with base station
cam.signal_strength

# get flip property from camera
cam.flip_state

# get mirror property from camera
cam.mirror_state

# get power save mode value from camera
cam.powersave_mode

# get current battery level of camera
cam.battery_level
92

# get boolean result if motion detection
# is enabled or not
base.is_motion_detection_enabled  # True

# get battery levels of all cameras
# prints serial number and battery level of each camera
base.get_cameras_battery_level  # {'4N71235T12345': 92, '4N71235T12345': 90}

# get base station properties
base.properties

# get camera properties
base.get_camera_properties

# get camera rules
base.get_camera_rules

# get camera schedule
base.get_camera_schedule

# get camera motion detection sensitivity
cam.get_motion_detection_sensitivity

# refreshing camera properties
cam.update()

# gathering live_streaming URL
cam.live_streaming()  # rtmps://vzwow72-z2-prod.vz.netgear.com:80/vzmodulelive?egressToken=b723a7bb_abbXX&userAgent=web&cameraId=48AAAAA

# gather last recorded video URL
cam.last_video.video_url

Loading Videos

# by default, all videos recorded within
# the last 30 days will be pre-loaded
arlo.ArloMediaLibrary.videos

# Or you can load Arlo videos directly
from pyarlo.media import ArloMediaLibrary
library = ArloMediaLibrary(arlo, days=2)
len(library.videos)

# showing a video properties
media = library.videos[0]

# printing video attributes
media.camera
media.content_type
media.media_duration_seconds

# displaying thumbnail to stdout
media.download_thumbnail()

# downloading video
media.download_video('/home/user/demo.mp4')

Ambient Sensors Data Usage (Arlo Baby Monitor)

# Get the base_station instance corresponding to the Arlo Baby
base_station = arlo.base_stations[0]

# Store all ambient sensor history in self._ambient_sensor_data
# All of the accessor properties will call this if values are not cached.
base_station.get_ambient_sensor_data()

# Get cached sensor history (property)
base_station.ambient_sensor_data

# Get most recent temperature reading in degrees celsius (property)
base_station.ambient_temperature

# Get most recent humidity reading in relative humidity percentage (property)
base_station.ambient_humidity

# Get most recent air quality reading (property)
# Not 100% sure on the unit of measure, but would assume it's VOC PPM
base_station.ambient_air_quality

Music Playback Usage (Arlo Baby Monitor)

# Get the current playback status and available track list
base_station.get_audio_playback_status()

# Play a track, optionally specify the track and seek time in seconds
base_station.play_track(
    track_id='229dca67-7e3c-4a5f-8f43-90e1a9bffc38',
    position=0)

# Pause the currently playing track
base_station.pause_track()

# Skip to the next track in the playlist
base_station.skip_track()

# Set the music loop mode to repeat the entire playlist
base_station.set_music_loop_mode_continuous()

# Set the music loop mode to repeat the current track
base_station.set_music_loop_mode_single()

# Sets playback to shuffle
base_station.set_shuffle_on()

# Sets playback to sequential
base_station.set_shuffle_off()

# Change the playback volume
base_station.set_volume(100)

Night Light Usage (Arlo Baby Monitor)

# Turn on the night light
base_station.set_night_light_on()

# Turn off the night light
base_station.set_night_light_off()

# Set the brightness of the night light
base_station.set_night_light_brightness(200)

Supported Devices

If you have a different model, please feel free to contribute by reporting your results.

Model Tested by Status Results/Issues
Arlo 1st Generation @tchellomello working/ok N/A
Arlo 2st Generation @tchellomello working/ok N/A

Contributing

See more at CONTRIBUTING.rst.

Project details


Download files

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

Files for pyarlo, version 0.2.3
Filename, size File type Python version Upload date Hashes
Filename, size pyarlo-0.2.3.tar.gz (17.8 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page