Skip to main content

motionEye client library Python Package

Project description

PyPi PyPi Build Status Coverage

motionEye Client

A simple async API client for motionEye.

Constructor arguments

The following arguments may be passed to the MotionEyeClient constructor:

Argument Type Default Description
host str Host or IP to connect to
port int 8765 Port to connect to
admin_username str admin The motionEye admin username
admin_password str "" The motionEye admin password
surveillance_username str user The motionEye surveillance username
surveillance_password str "" The motionEye surveillance password

This client needs both admin and surveillance passwords in order to interact with the API (which generally require the admin user), as well as prepare the URLs for data streaming (which require the surveillance user).

Primary Client Methods

All async calls start with async_, and return the JSON response from the server (if any).

async_client_login

Login to the motionEye server. Not actually necessary, but useful for verifying credentials.

async_client_close

Close the client session. Always returns True.

async_get_manifest

Get the motionEye server manifest (e.g. server version number).

async_get_server_config

Get the main motionEye server config.

async_get_cameras

Get the listing of all cameras.

async_get_camera

Get the configuration of a single camera. Takes an integer camera_id argument.

async_set_camera

Set the configuration of a single camera. Takes an integer camera_id argument, and a dictionary of the same format as returned by async_get_camera.

async_action

Perform a motionEye action on a camera. Takes an integer camera_id argument and an action string.

Common actions include snapshot, record_start and record_stop. motionEye also supports other user configurable actions which may be called in this manner. See Action Buttons for more details.

Convenience Methods

is_camera_streaming

Convenience method to take a camera dictionary (returned by async_get_camera or async_get_cameras) and return True if the camera has video stream enabled.

get_camera_steam_url

Convenience method to take a camera dictionary (returned by async_get_camera or async_get_cameras) and return the string URL of the streamed content (which can be opened separately).

get_camera_snapshot_url

Convenience method to take a camera dictionary (returned by async_get_camera or async_get_cameras) and return the string URL of a single still frame.

Context Manager

The client may be used in as a context manager, which will automatically close the session.

async with client.MotionEyeClient("localhost", ) as mec:
    if not mec:
        return
    ...

Exceptions / Errors

MotionEyeClientError

A generic base class -- all motionEye client exceptions inherit from this.

MotionEyeClientInvalidAuth

Invalid authentication detected during a request.

MotionEyeClientConnectionFailure

Connected failed to given host and port.

MotionEyeClientRequestFailed

A request failed in some other undefined way.

Simple Example

#!/usr/bin/env python
"""Client test for motionEye."""
import asyncio
import logging

from motioneye_client.client import MotionEyeClient

async def query_motioneye_server():
  async with MotionEyeClient("localhost", 8765) as client:
      if not client:
        return

      manifest = await client.async_get_manifest()
      print ("Manifest: %s" % manifest)

      camera_list = await client.async_get_cameras()
      print ("Cameras: %s" % camera_list)

asyncio.get_event_loop().run_until_complete(query_motioneye_server())

Building / Testing

This library is built using Poetry.

Building:

$ poetry build

Testing:

$ poetry run pytest

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

motioneye-client-0.3.0.tar.gz (10.0 kB view hashes)

Uploaded Source

Built Distribution

motioneye_client-0.3.0-py3-none-any.whl (10.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page