Web browser client for the Garmin VIRB Elite Wireless API.
This project is a web browser client for the VIRB Elite Wireless API. The Garmin VIRB Elite action camera emits a WiFi network and exposes a JSON based API. The outline of how the API works can be found on the Garmin forum.
The client opened in a web browser on a computer or other device connected to the WiFi emitted by the camera will listen for the available services at the URL http://192.168.0.1/virb
and will allow the user to control the camera settings, trigger video recording, trigger making a photo, stream the video from the camera, and preview the details of the device.
The client opened in a web browser with default configuration will not be able to communicate with the local IP address 192.168.0.1
because of the same-origin policy. The workaround is to exceptionally run the web browser in mode with the policy disabled.
Enforce the CORS by overwriting the Access-Control-*
HTTP headers. There are many ways to achieve it, the suggested workaround is the CORS Everywhere add-on for Firefox.
- Install the CORS Everywhere add-on in the Firefox, restart the browser and ensure the add-on is activated.
- Connect the computer to the WiFi network emitted by the camera.
- Open this client in Firefox.
- Switch on the CORS Everywhere add-on.
- Once the client is able to connect to the device, an interface allowing to configure available services will be displayed.
Run the web browser with the --disable-web-security
flag enabled. To ensure the web browser instance is launched with the flag enabled, it's necessary to kill all Chrome/Chromium processes beforehand.
chromium --disable-web-security virb-control.html
- Ensure no instances of web browser are running.
- Launch the web browser from command line with the flag
--disable-web-security
. - Connect the computer to the WiFi network emitted by the camera.
- Open this client in the web browser.
- Once the client is able to connect to the device, an interface allowing to configure available services will be displayed.
This application is using native ECMAScript 6 modules.
To enable the support for EC6 modules in older versions of Firefox, go to the browser settings (about:config
) and set the settings item dom.moduleScripts.enabled
to true
.