Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

GoPro API for Python

GitHub issues Github All Releases PyPi Version

Unofficial GoPro API Library for Python - connect to GoPro cameras via WiFi.


Project has been updated to support Hero10 Black + OpenGoPro v2 + USB control. Further is needed to support these features:

  • Python3.8 typing
  • Custom exceptions
  • Integration tests
  • BLE support (using gopro-ble-py)
  • Hero9 (v1.21 & 1.22 fw) / Hero10 (OpenGoPro v2) USB identifier Autodiscovery
  • Stacktraces
  • More robust examples, with boilerplate code ready for use

Project covers a decade worth of camera releases, naturally something might've broken as development focuses on the newer cameras. Hopefully nothing broke.

Acknowledgments to GoPro for the OpenGoPro API spec release.

- @konradit


  • HERO3
  • HERO3+
  • HERO4 (including HERO Session)
  • HERO+
  • HERO5 (including HERO5 Session)
  • HERO6
  • Fusion 1
  • HERO7 (Black)
  • HERO8 Black
  • MAX
  • HERO9 Black
  • HERO10 Black

WiFi vs USB:

Hero3..Hero8 (incl. MAX/Fusion/Session) all use WiFi (and some use Bluetooth) for controls, media management, status updates and live preview

Hero9 Black and Hero10 Black have Webcam functionality, and Hero10 Black is officially exposing the API server over USB Ethernet with full camera control capabilities

Hero9 Black requires using an older firmware to get ability to take photos. See the compatibility chart


From PyPi:

pip install goprocam

Git (unstable):

git clone
cd gopro-py-api
python install

Tested on Python 3.6.0 -- works on Linux and Windows and Mac

Quick start:

Connect your camera to your computer via WiFi (WiFi on the camera must be on!)

from goprocam import GoProCamera, constants

goproCamera = GoProCamera.GoPro()



See examples for examples on how to use this API.


Documentation is available: docs

Video screencap: