wyzecam
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:
- Follow guide to install Windows Subsystem for Linux
- Install VcXsrv Windows X Server
- Run the following command and add it to
/etc/bash.bashrc
export DISPLAY=":0"
- Follow Linux instructions to compile the shared library
๐ก 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.