arlo: Cannot access shared device

Hi,

I have a feeling this issue is because I am trying to access a shared camera, but thought I’d ask to confirm.

What version of Python are you using (python -V)?

Python 3.8.5

What operating system and processor architecture are you using (python -c 'import platform; print(platform.uname());')?

('Linux', 'tern', '5.4.0-52-generic', '#57-Ubuntu SMP Thu Oct 15 10:57:00 UTC 2020', 'x86_64', 'x86_64')

Which Python packages do you have installed (run the pip freeze or pip3 freeze command and paste output)?

arlo==1.2.38
certifi==2020.11.8
chardet==3.0.4
click==7.1.2
idna==2.10
monotonic==1.5
pycryptodome==3.9.9
PySocks==1.7.1
requests==2.24.0
six==1.15.0
sseclient==0.0.22
urllib3==1.25.11

Which version of ffmpeg are you using (ffmpeg -version)?

ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)
configuration: --prefix=/usr --extra-version=1ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil      56. 31.100 / 56. 31.100
libavcodec     58. 54.100 / 58. 54.100
libavformat    58. 29.100 / 58. 29.100
libavdevice    58.  8.100 / 58.  8.100
libavfilter     7. 57.100 /  7. 57.100
libavresample   4.  0.  0 /  4.  0.  0
libswscale      5.  5.100 /  5.  5.100
libswresample   3.  5.100 /  3.  5.100
libpostproc    55.  5.100 / 55.  5.100

Which Arlo hardware do you have (camera types - [Arlo, Pro, Q, etc.], basestation model, etc.)?

Arlo Pro 2, shared device (no access to the base station if one exists)

What did you do?

If possible, provide the steps you took to reproduce the issue. A complete runnable program is good. (don’t include your user/password or any sensitive info) Example taken from Taking Fullscreen Snapshots

from arlo import Arlo

USERNAME = 'user@example.com'
PASSWORD = 'supersecretpassword'

try:
    # Instantiating the Arlo object automatically calls Login(), which returns an oAuth token that gets cached.
    # Subsequent successful calls to login will update the oAuth token.
    arlo = Arlo(USERNAME, PASSWORD)
    # At this point you're logged into Arlo.

    # Get the list of devices and filter on device type to only get the basestation.
    # This will return an array which includes all of the basestation's associated metadata.
    basestations = arlo.GetDevices('basestation')

    # Get the list of devices and filter on device type to only get the camera.
    # This will return an array which includes all of the camera's associated metadata.
    cameras = arlo.GetDevices('camera')

    # Tells the Arlo basestation to trigger a snapshot on the given camera.
    # This snapshot is not instantaneous, so this method waits for the response and returns the url
    # for the snapshot, which is stored on the Amazon AWS servers. 
    #snapshot_url = arlo.TriggerFullFrameSnapshot(basestations[0], cameras[0])
    snapshot_url = arlo.TriggerFullFrameSnapshot(cameras[0], cameras[0])
        
    # This method requests the snapshot for the given url and writes the image data to the location specified.
    # In this case, to the current directory as a file named "snapshot.jpg"
    # Note: Snapshots are in .jpg format.
    arlo.DownloadSnapshot(snapshot_url, 'snapshot.jpg')

except Exception as e:
    print(e)

What did you expect to see?

A snapshot.jpg in the directory.

What did you see instead?

The program hangs and does nothing.

For reference:

basestations = arlo.GetDevices('basestation')
cameras = arlo.GetDevices('camera')

Returns: basestations = [] cameras containing the one camera that was shared with me.

Does this issue reproduce with the latest release?

Yes

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 21 (11 by maintainers)

Most upvoted comments

I’d be happy to jump on a screen share with you to take a look if you want.

Thanks for the offer, keen to give this a crack myself, will let you know if I need help