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 details)

Uploaded Source

Built Distribution

wyzecam-1.2.0-py3-none-any.whl (31.2 kB view details)

Uploaded Python 3

File details

Details for the file wyzecam-1.2.0.tar.gz.

File metadata

  • Download URL: wyzecam-1.2.0.tar.gz
  • Upload date:
  • Size: 30.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.6 CPython/3.9.5 Darwin/20.4.0

File hashes

Hashes for wyzecam-1.2.0.tar.gz
Algorithm Hash digest
SHA256 8bf3686f18991fb52ddf9d8339569be1f8db0de610f9c6115aaf281c3440a64c
MD5 b0f314872f92b63354c5fcdb3f7dc355
BLAKE2b-256 f836c794c2af7d06aa3237c93a8233a7a0ad5e872c1214ee66b696027620c93d

See more details on using hashes here.

File details

Details for the file wyzecam-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: wyzecam-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 31.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.6 CPython/3.9.5 Darwin/20.4.0

File hashes

Hashes for wyzecam-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2ae01e847e66f9085837d180b96e1f4a2c718d6c96d3c8aab11222896b34773d
MD5 f2e6d31a8113ce1e24c69a253a626949
BLAKE2b-256 4850c49fea49faf64c85e638e58754f6185e9121eef2faf9c9a758ed2d606609

See more details on using hashes here.

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