Control your GoPro swarm with ease using Python.
Project description
pyTermite
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
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
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pytermite-0.0.2.tar.gz.
File metadata
- Download URL: pytermite-0.0.2.tar.gz
- Upload date:
- Size: 896.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7ea6cc82cc1612d4b2c60e817ce2f4e537ef87fd08388ce7024c93abc6aa62a
|
|
| MD5 |
e14be7f0828cd97dc41e7d616af14457
|
|
| BLAKE2b-256 |
1f11da63693fa120b0d192535842fe76cc6d6ea73187b58123d674f078c04f76
|
Provenance
The following attestation bundles were made for pytermite-0.0.2.tar.gz:
Publisher:
cd.yml on cimt-unia/pyTermite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pytermite-0.0.2.tar.gz -
Subject digest:
e7ea6cc82cc1612d4b2c60e817ce2f4e537ef87fd08388ce7024c93abc6aa62a - Sigstore transparency entry: 1085198059
- Sigstore integration time:
-
Permalink:
cimt-unia/pyTermite@94d263b3e3e934d7eaeaebcef97eb425386f2057 -
Branch / Tag:
refs/tags/v0.0.2 - Owner: https://github.com/cimt-unia
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cd.yml@94d263b3e3e934d7eaeaebcef97eb425386f2057 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pytermite-0.0.2-py3-none-any.whl.
File metadata
- Download URL: pytermite-0.0.2-py3-none-any.whl
- Upload date:
- Size: 15.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9b614c3cec48ba229ecb1e6f8f1e3bf76e13c74d9f8e8749eb2943bb1d6a42b
|
|
| MD5 |
4ec829991851a71530deaecf2a4dcef3
|
|
| BLAKE2b-256 |
a0ada0b1606b26d92aefe99596bc30a8cceabd9bdc5f5dd963f0aebc97fb4f7a
|
Provenance
The following attestation bundles were made for pytermite-0.0.2-py3-none-any.whl:
Publisher:
cd.yml on cimt-unia/pyTermite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pytermite-0.0.2-py3-none-any.whl -
Subject digest:
d9b614c3cec48ba229ecb1e6f8f1e3bf76e13c74d9f8e8749eb2943bb1d6a42b - Sigstore transparency entry: 1085198117
- Sigstore integration time:
-
Permalink:
cimt-unia/pyTermite@94d263b3e3e934d7eaeaebcef97eb425386f2057 -
Branch / Tag:
refs/tags/v0.0.2 - Owner: https://github.com/cimt-unia
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cd.yml@94d263b3e3e934d7eaeaebcef97eb425386f2057 -
Trigger Event:
push
-
Statement type: