Open GoPro API and Examples
Project description
Open GoPro Python SDK
This is a Python package that provides an interface for the user to exercise the Open GoPro Bluetooth Low Energy (BLE) and Wi-Fi API's as well as install command line interfaces to take photos, videos, and view the preview stream.
- Free software: MIT license
- Documentation: View on Open GoPro
- View on Github
Documentation
Note! This README is only an overview of the package.
Complete documentation can be found on Open GoPro
Features
- Top-level GoPro class interface to use both BLE / WiFi
- Cross-platform (tested on MacOS Big Sur, Windows 10, and Ubuntu 20.04)
- BLE implemented using bleak
- Wi-Fi controller provided in the Open GoPro package (loosely based on the Wireless Library
- Supports all commands, settings, and statuses from the Open GoPro API
- Supports all versions of the Open GoPro API
- Automatically handles connection maintenance:
- manage camera ready / encoding
- periodically sends keep alive signals
- Includes detailed logging for each module
- Includes demo scripts installed as command-line applications to show BLE and WiFi functionality
- Take a photo
- Take a video
- View the live stream
- Log the battery
Installation
Note! This package requires Python >= 3.8
$ pip install open-gopro
Usage
To automatically connect to GoPro device via BLE and WiFI, set the preset, set video parameters, take a video, and download all files:
import time
from open_gopro import GoPro, Params
with GoPro() as gopro:
gopro.ble_command.load_preset(Params.Preset.CINEMATIC)
gopro.ble_setting.resolution.set(Params.Resolution.RES_4K)
gopro.ble_setting.fps.set(Params.FPS.FPS_30)
gopro.ble_command.set_shutter(Params.Shutter.ON)
time.sleep(2) # Record for 2 seconds
gopro.ble_command.set_shutter(Params.Shutter.OFF)
# Download all of the files from the camera
media_list = [x["n"] for x in gopro.wifi_command.get_media_list().flatten
for file in media_list:
gopro.wifi_command.download_file(camera_file=file)
And much more!
Demos
Note! These demos can be found on Github
Demos can be found in the installed package in the "demos" folder. They are installed as a CLI entrypoint and can be run via:
Capture a photo and download it to your computer:
$ gopro-photo
Capture a video and download it to your computer:
$ gopro-video
Start the preview stream and view it with VLC:
$ gopro-stream
Connect to the GoPro and log battery consumption in to a .csv:
$ gopro-log-battery
Connect to the GoPro's Wi-Fi AP and maintain the connection:
$ gopro-wifi
For more information on each, try running with help as such:
$ gopro-photo --help
usage: gopro-photo [-h] [-i IDENTIFIER] [-l LOG] [-o OUTPUT] [-w WIFI_INTERFACE]
Connect to a GoPro camera, take a photo, then download it.
optional arguments:
-h, --help show this help message and exit
-i IDENTIFIER, --identifier IDENTIFIER
Last 4 digits of GoPro serial number, which is the last 4 digits of the default camera SSID. If not used, first
discovered GoPro will be connected to
-l LOG, --log LOG Location to store detailed log
-o OUTPUT, --output OUTPUT
Where to write the photo to. If not set, write to 'photo.jpg'
-w WIFI_INTERFACE, --wifi_interface WIFI_INTERFACE
System Wifi Interface. If not set, first discovered interface will be used.
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 open_gopro-0.9.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a9539ffe65c5be1d12b776a23dbfa9a52be4bf152d5a837f8aceb34817c57a3 |
|
MD5 | 17fd6d04d722d68f45a4138f3be2d181 |
|
BLAKE2b-256 | 9170968f65954055f6eb8619abdabf8281eccf501775a152e1db1df9b12897e8 |