
This is a Python package that provides an interface for the user to exercise the Open GoPro Bluetooth Low Energy (BLE) and Wi-Fi / USB HTTP API's as well as install command line interfaces to take photos, videos, and view video streams.
Note! This README is only an overview of the package.
Complete documentation can be found on Open GoPro
Note! This package requires Python >= 3.11 and < 3.14 and only supports GoPros that implement the OGP API
The minimal install to use the Open GoPro library and the CLI demos is:
$ pip install open-gopro
To also install the extra dependencies to run the GUI demos, do:
$ pip install open-gopro[gui]
To automatically connect to GoPro device via BLE and WiFI, set the preset, set video parameters, take a video, and download all files:
import asyncio
from open_gopro import WirelessGoPro, Params
async def main():
async with WirelessGoPro() as gopro:
await gopro.ble_setting.video_resolution.set(constants.settings.VideoResolution.NUM_4K)
await gopro.ble_setting.video_lens.set(constants.settings.VideoLens.LINEAR)
await gopro.ble_command.set_shutter(shutter=constants.Toggle.ENABLE)
await asyncio.sleep(2) # Record for 2 seconds
await gopro.ble_command.set_shutter(shutter=constants.Toggle.DISABLE)
# Download all of the files from the camera
media_list = (await gopro.http_command.get_media_list()).data.files
for item in media_list:
await gopro.http_command.download_file(camera_file=item.filename)
asyncio.run(main())
And much more!
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 as shown below.
All of these demos are CLI only and can thus be run with the minimal (non-GUI) install.
Capture a photo and download it to your computer:
$ gopro-photo
Capture a video and download it to your computer:
$ gopro-video
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.
These demos require the additional GUI installation.
Start the preview stream and view it:
$ gopro-preview-stream
Start the live stream and view it:
$ gopro-live-stream