ProtoRec is a Flask-based web application for managing audio and video recordings with GStreamer, designed specifically for early-stage prototypes and experimental hardware.
- 📹 Record and monitor live sessions
- 💾 Track storage usage effectively
- Python 3.8+
- GStreamer with necessary plugins
- JavaScript-enabled modern web browser
- UV Python package manager (for development)
Download the latest wheel from the releases page or create one with uv build
.
- Install the wheel:
sudo pip3 install /path/to/protorec-<version>-py3-none-any.whl
- Launch the web app:
protorec-app --config /absolute/path/to/your_config.json --recdir /absolute/path/to/your_recordings_dir
- Go to
http://<your-server-ip>:5000
on your browser.
- Install linux service:
sudo protorec-service --config /absolute/path/to/your_config.json --recdir /absolute/path/to/your_recordings_dir
- Go to
http://<your-server-ip>:5000
on your browser.
Something went wrong?
- Check service status:
sudo systemctl status protorec
- Check service logs:
sudo journalctl -u protorec -f
- Stop service:
sudo systemctl stop protorec
Contributions are welcome! Please open an issue or submit a pull request.
- Pre-commit Hooks: Use pre-commit hooks to maintain code quality.
- Style Guide: Follow guidelines enforced via
ruff
and run checks before committing.
- Install pre-commit hooks:
uvx pre-commit install
- Run Ruff for linting and auto-fixes:
uvx ruff check --fix
- Add dependencies using UV:
uv add <package-name>
uv add <package-name>@<version>
uv sync # Syncs dependencies from pyproject.toml