Skip to main content

pyTermite

pyTermite logo

Project Status: Active – The project has reached a stable, usable state and is being actively developed. readthedocs codecov pre-commit pre-commit.ci status Ruff Contributor Covenant

pyTermite is a small toolkit that simplifies discovering, connecting to and controlling a swarm of GoPro cameras over USB and mDNS. It wraps parts of the open_gopro library and provides a convenient CLI and small Python API for automation and testing.

Key features

  • Discover GoPro devices via mDNS/USB
  • Connect to multiple cameras concurrently
  • Query camera info and runtime state
  • Start/stop recording on multiple cameras simultaneously
  • Interactive REPL and programmatic API

Quick start

If you want to try out pyTermite quickly, you can install it from PyPI and run the demo script from the GitHub repository:

pip install pyTermite
python -m demo.py

Make sure to put the serial numbers of one or multiple connected cameras in a subdirectory ./config/gopro_serials.json next to demo.py before running the script. Structure of this file is as follows:

{
  "camera_name": "camera_serial_number"
}

If you want to contribute or run the latest development version, you can clone the repository and install it locally. Create a virtual environment, install dependencies and run the demo script:

git clone https://github.com/cimt-unia/pyTermite.git
cd pyTermite
python -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -e .

Running the CLI

After installation, you can use the bundled CLI. Examples:

# discover devices (waits for mDNS / USB discovery)
pytermite scan --timeout 5

# connect to discovered devices automatically
pytermite connect --auto

# connect using explicit serials
pytermite connect --serials S123,S456

# start recording on connected devices
pytermite record start

# disconnect
pytermite disconnect

Testing

To use an individual config for testing .env files are recommended. Create a file env/.env.test with the following content and change YOUR_WORKDIR to the root path of this repository:

PYTERMITE_LOG_LEVEL=DEBUG

This should be sufficient since the tox.ini is already configured to load the env/.env.test file automatically when running tests.

Run the test suite with coverage reporting:

pip install tox --group test
tox r -m test coverage

Documentation

Build the Sphinx documentation locally and open the generated HTML:

python -m pip install -e . tox --group docs
tox r -m docs

or alternatively use sphinx-autobuild:

python -m pip install -e . tox --group docs
sphinx-autobuild docs/source docs/build/html

Contributing

See CONTRIBUTING.md and the Developer Guide for contribution guidelines and the typical workflow (pull requests, tests, code style).

License

This project is licensed under the BSD-3-Clause license (see LICENSE.txt).

Contact

Lukas Behammer — lukas.behammer@uni-a.de

Metadata

Release files for pyTermite 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyTermite 1.0.0
File Size Uploaded
pytermite-1.0.0.tar.gz 2.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyTermite 1.0.0
File Interpreter ABI Platform
pytermite-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 3.1 MB

Release files / pytermite-1.0.0.tar.gz

Download URL pytermite-1.0.0.tar.gz
Size 2.1 MB
Tags Source
SHA-256 checksum
How to use checksums
7aad5a17ef91065a97b1498e47a29468b214c7c57412ef2467d5d99705160ab5
BLAKE2b-256 checksum
How to use checksums
c38c788f49d27a76bacdca2f7a86460ed9733b6df2f9a67295ba92971bfa7599
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / pytermite-1.0.0-py3-none-any.whl

Download URL pytermite-1.0.0-py3-none-any.whl
Size 1.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
4ac601c7df8fd7517f724b0c094a29d97f0956442b60110aca2a70a840032773
BLAKE2b-256 checksum
How to use checksums
1d4ee8facc25f224679b1240913af4dd34bccc5667f1d7b8f858f55bd1de8bd0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.0.3

2 release files

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page