Basic video surveillance system controlled through a telegram bot.
Project description
Surveillance Bot is a Telegram bot that uses a camera (such a webcam) for surveillance. Photos and videos can be taken from the camera and sent via Telegram instantly. Those actions can be triggered by commands sent by the user or when motion is detected.
All files in this project are covered under the GPLv3 LICENSE, if you modify this project in any way you MUST publish the changes you made and submit your contribution to the community under the same license.
Features
Motion detection.
Real time notification.
Motion tracking.
Photo and video capture on demand.
Bot configuration via telegram chat.
Timestamp in photos and videos.
H264 video encoding (when codec is available).
Multi-platform: Linux, Windows and MacOS.
Dockerized.
Requirements
python (supported versions: 3.6, 3.7, 3.8 and 3.9)
OpenCV
python-telegram-bot
Quick-start
Install package with pip:
pip install surveillance-bot
Set application configuration variables (see Advanced configuration):
export BOT_API_TOKEN=<api_token> export AUTHORIZED_USER=<username>
Run script:
surveillance_bot
Advanced configuration
- The application is configured using this environment variables:
BOT_API_TOKEN (mandatory)
The Telegram bot API token of a telegram bot.
AUTHORIZED_USER (mandatory)
The Telegram username (without @) of the user authorized to interact with the bot.
PERSISTENCE_DIR
If this variable is set the bot configuration (set via telegram chat) will persist on disk into a file placed in this directory.
LOG_LEVEL
Global log level for application and libraries using the python standard logging library.
BOT_LOG_LEVEL
Specific Bot application log level.
H264 Encoding
This application generates MP4 video files, if H264 codec is available it will use it to generate smaller files.
The OpenCV library provided by the PyPi package (installed with pip) doesn’t have H264 support so if you wish to use H264 encoding you have to do a manual build or use a precompiled library with H264 support (some distributions, like Ubuntu, have OpenCV library supporting this codec).
Docker
Dockerfile
A Surveillance Bot docker image can be created, using the Dockerfile provided, running this command:
docker build -t telegram-surveillance-bot .
This docker image has H264 support. The image will be created with UTC timezone by default (so photo and video timestamp will use this timezone) it can be overridden mounting /etc/localtime file (see docker-compose.yml example).
docker-compose
A docker-compose example file is also provided, you must previously export the required configuration variables or modify this docker-compose template.
Screenshots
Start command
Config command
Surveillance sequence screencast
Video taken in surveillance mode
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for surveillance_bot-1.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b0734fbeb4a87373881c40a759b3ffa80e91a1542b87194ffd6e7ff49ddd6ef |
|
MD5 | bb73da38ef34239cdef08fcdf06f1d75 |
|
BLAKE2b-256 | 1f5d9ce24c71ae3578922ca7d45cb88487cb5ad2f0673c818150423408184e6f |