/reolinkapipy

Reolink Camera API written in Python 3.6

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Reolink Python Api Client

Reolink Approval GitHub GitHub tag (latest SemVer) PyPI Discord


A Reolink Camera client written in Python. This repository's purpose (with Reolink's full support) is to deliver a complete API for the Reolink Cameras, although they have a basic API document - it does not satisfy the need for extensive camera communication.

Check out our documentation for more information on how to use the software at https://reolink.oleaintueri.com

Other Supported Languages:

Join us on Discord

https://discord.gg/8z3fdAmZJP

Sponsorship

Oleaintueri is sponsoring the development and maintenance of these projects within their organisation.


Get started

Implement a "Camera" object by passing it an IP address, Username and Password. By instantiating the object, it will try retrieve a login token from the Reolink Camera. This token is necessary to interact with the Camera using other commands.

See the examples directory.

Using the library as a Python Module

Install the package via PyPi

pip install reolinkapi

Install from GitHub

pip install git+https://github.com/ReolinkCameraAPI/reolinkapipy.git

If you want to include the video streaming functionality you need to include the streaming "extra" dependencies

pip install 'reolinkapi[streaming]'

Contributors


Styling and Standards

This project intends to stick with PEP8

How can I become a contributor?

Step 1

Get the Restful API calls by looking through the HTTP Requests made in the camera's web UI. I use Google Chrome developer mode (ctr + shift + i) -> Network.

Step 2

  • Fork the repository
  • pip install -r requirements.txt
  • Make your changes

Step 3

Make a pull request.

API Requests Implementation Plan:

Stream:

  • Blocking RTSP stream
  • Non-Blocking RTSP stream

GET:

  • Login
  • Logout
  • Display -> OSD
  • Recording -> Encode (Clear and Fluent Stream)
  • Recording -> Advance (Scheduling)
  • Network -> General
  • Network -> Advanced
  • Network -> DDNS
  • Network -> NTP
  • Network -> E-mail
  • Network -> FTP
  • Network -> Push
  • Network -> WIFI
  • Alarm -> Motion
  • System -> General
  • System -> DST
  • System -> Information
  • System -> Maintenance
  • System -> Performance
  • System -> Reboot
  • User -> Online User
  • User -> Add User
  • User -> Manage User
  • Device -> HDD/SD Card
  • PTZ -> Presets, Calibration Status
  • Zoom
  • Focus
  • Image (Brightness, Contrast, Saturation, Hue, Sharp, Mirror, Rotate)
  • Advanced Image (Anti-flicker, Exposure, White Balance, DayNight, Backlight, LED light, 3D-NR)
  • Image Data -> "Snap" Frame from Video Stream

SET:

  • Display -> OSD
  • Recording -> Encode (Clear and Fluent Stream)
  • Recording -> Advance (Scheduling)
  • Network -> General
  • Network -> Advanced
  • Network -> DDNS
  • Network -> NTP
  • Network -> E-mail
  • Network -> FTP
  • Network -> Push
  • Network -> WIFI
  • Alarm -> Motion
  • System -> General
  • System -> DST
  • System -> Reboot
  • User -> Online User
  • User -> Add User
  • User -> Manage User
  • Device -> HDD/SD Card (Format)
  • PTZ (including calibrate)
  • Zoom
  • Focus
  • Image (Brightness, Contrast, Saturation, Hue, Sharp, Mirror, Rotate)
  • Advanced Image (Anti-flicker, Exposure, White Balance, DayNight, Backlight, LED light, 3D-NR)

Supported Cameras

Any Reolink camera that has a web UI should work. The other's requiring special Reolink clients do not work and is not supported here.

  • RLC-411WS
  • RLC-423
  • RLC-420-5MP
  • RLC-410-5MP
  • RLC-510A
  • RLC-520
  • C1-Pro
  • D400
  • E1 Zoom