A Python tool to scan and decode GoPro Labs control QR codes, displaying the configured camera parameters in a human-readable format.
GoPro Labs is an experimental firmware program that extends GoPro camera functionality through QR code commands. This tool helps you understand what settings are encoded in those QR codes.
For more information about GoPro Labs:
- GitHub: https://github.com/gopro/labs
- Control Documentation: https://gopro.github.io/labs/control/
- Technical Details: https://gopro.github.io/labs/control/tech/
- Scan QR codes from image files (PNG, JPG, etc.)
- Live scanning from webcam
- Direct command string decoding
- Comprehensive parameter parsing for common GoPro settings:
- Video modes and resolutions
- Frame rates and field of view
- Color profiles and white balance
- ISO, shutter speed, exposure compensation
- Audio, GPS, and other camera options
- Python 3.12 or higher
- pip or uv package manager
This project uses uv for package management. Install dependencies with:
uv syncAlternatively, using pip:
pip install opencv-python pyzbar pillowFor QR code scanning, you may need to install zbar:
Linux (Ubuntu/Debian):
sudo apt-get install libzbar0macOS:
brew install zbarWindows: Download and install from: https://sourceforge.net/projects/zbar/files/
uv run main.py path/to/qr_code.pnguv run main.py --webcamPress 'q' to quit the webcam view.
If you already have the command string:
uv run main.py --string "mVr4p60x-.5cFw55"============================================================
GoPro Labs QR Code Decoder
============================================================
Raw Command String: mVr4p60x-.5cFw55
Decoded Parameters:
------------------------------------------------------------
1. Mode: Video
└─ Command: 'm', Value: 'V'
2. Resolution: 4 K/MP
└─ Command: 'r', Value: '4'
3. Frame Rate: 60 fps
└─ Command: 'p', Value: '60'
4. Exposure Compensation: -0.5 EV
└─ Command: 'x', Value: '-0.5'
5. Color Profile: Flat
└─ Command: 'c', Value: 'F'
6. White Balance: 55 K
└─ Command: 'w', Value: '55'
============================================================
The decoder recognizes the following GoPro Labs commands:
m- Camera mode (V=Video, P=Photo, T=Timelapse, etc.)r- Resolutionp- Frame ratef- Field of view
w- White balancec- Color profile (G=GoPro, F=Flat, N=Natural, V=Vibrant)x- Exposure compensationi/I- ISO min/maxs- Sharpness
v- Video stabilizationb- Bit rateS- Shutter speed
t- Timelapse intervalz- Digital zooma- Audio settingsl- LED settingsg- GPS on/offq- QuikCapture
And many more! See the source code for the complete list.
Make sure you've installed all dependencies:
pip install opencv-python pyzbar pillow- Ensure the image is clear and the QR code is visible
- Try increasing the image size or improving lighting
- The QR code should not be distorted or damaged
- Check that your webcam is connected and not in use by another application
- On Linux, you may need to add your user to the
videogroup - Try specifying a different camera device in the code if you have multiple cameras
Contributions are welcome! Feel free to submit issues or pull requests.
APACHE 2.0
This is an unofficial tool and is not affiliated with GoPro Inc. GoPro Labs is an experimental firmware program by GoPro Inc.