Skip to content

mrlt8/wyzecam

 
 

Repository files navigation

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.

About

Python package for streaming video from wyze cameras over the local network

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 97.0%
  • Makefile 3.0%