Skip to main content

Python package for communicating with wyze cameras over the local network

Project description

wyzecam

Build status Python Version Dependencies Status

Code style: black Security: bandit Pre-commit Semantic Versions License

Wyzecam is a library for streaming audio and video from your wyze cameras using the wyze native firmware.

That means no need to flash rtsp-specific firmware, and full support for the v3 hardware!

Basic Usage

Streaming video in 11 lines of code!

import os

import cv2
import wyzecam

auth_info = wyzecam.login(os.environ["WYZE_EMAIL"], os.environ["WYZE_PASSWORD"])
account = wyzecam.get_user_info(auth_info)
camera = wyzecam.get_camera_list(auth_info)[0]

with wyzecam.WyzeIOTC() as wyze_iotc:
  with wyze_iotc.connect_and_auth(account, camera) as sess:
    for (frame, frame_info) in sess.recv_video_frame_ndarray():
      cv2.imshow("Video Feed", frame)
      cv2.waitKey(1)

Features

  • Send local commands (via WyzeIOTC class)
  • Support for all wyze camera types (including v3 cameras!)
  • Uses the tutk protocol for communicating over the local network.
  • Optional support for opencv and libav for easy decoding of the video feed!

Installation

pip install -U wyzecam

You will then need a copy of the shared library libIOTCAPIs_ALL. You will need to download this SDK, unzip it, then convert the appropriate copy of the library to a shared library, and copy the resultant .so or .dylib file to somewhere convenient.

On Mac:

unzip TUTK_IOTC_Platform_14W42P1.zip
cd Lib/MAC/
g++ -fpic -shared -Wl,-all_load libIOTCAPIs_ALL.a -o libIOTCAPIs_ALL.dylib
cp libIOTCAPIs_ALL.dylib /usr/local/lib/

On Linux:

unzip TUTK_IOTC_Platform_14W42P1.zip
cd Lib/Linux/x64/
g++ -fpic -shared -Wl,--whole-archive libAVAPIs.a libIOTCAPIs.a -Wl,--no-whole-archive -o libIOTCAPIs_ALL.so
cp libIOTCAPIs_ALL.so /usr/local/lib/

Note: you will need to pick the appropriate architecture.

On Windows:

  1. Follow guide to install Windows Subsystem for Linux
  2. Install VcXsrv Windows X Server
  3. Run the following command and add it to /etc/bash.bashrc
export DISPLAY=":0"
  1. Follow Linux instructions to compile the shared library

🛡 License

License

This project is licensed under the terms of the MIT license. See LICENSE for more details.

📃 Citation

@misc{wyzecam,
  author = {kroo},
  title = {Python package for communicating with wyze cameras over the local network},
  year = {2021},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/kroo/wyzecam}}
}

Credits

Special thanks to the work by folks at nblavoie/wyzecam-api, without which this project would have been much harder.

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

wyzecam-1.2.0.tar.gz (30.7 kB view hashes)

Uploaded Source

Built Distribution

wyzecam-1.2.0-py3-none-any.whl (31.2 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