Python Arlo is a library written in Python 2.7/3x that exposes the Netgear Arlo cameras as Python objects.
Project description
Python Arlo
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyarlo-0.2.1.tar.gz
(17.6 kB
view details)
File details
Details for the file pyarlo-0.2.1.tar.gz
.
File metadata
- Download URL: pyarlo-0.2.1.tar.gz
- Upload date:
- Size: 17.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.2.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dad8fa9b0665257b86a462cb57492638513ee07bc648243294bdc4f2f590f41b |
|
MD5 | 63cdf0941afcf93104c942df739f532c |
|
BLAKE2b-256 | 918eae80d891f46fd060ee3256a8ab5d6af0f2ba395e09f0e59e59a2354d1433 |