batch-filecurlconnectionwgetgopro

How to avoid timed out connection to GoPro camera


I'm using a batch file on a Windows Vista PC to control and download media from a GoPro Hero 3+ Black camera. Thanks to the WiFi hacking ingenuity of https://github.com/KonradIT/goprowifihack, you can curl URLs to tell the camera to start and stop recording, change modes, etc. Then I can use wget to download the files from the camera to my hard drive.

My issue is that after about 9 runs through my loop or so (it varies) I lose connection:

curl: (7) failed to connect to 10.5.5.9 port 80: Timed out

Is there something I'm doing that overloads the connection?

Here's just the code that I think is relevant for my issue:

echo off
setlocal enabledelayedexpansion

REM turn on the camera
curl http://10.5.5.9/bacpac/PW?t=password^&p=%%01
timeout 10 /nobreak

REM delete all previous files
curl http://10.5.5.9/camera/DA?t=password
timeout 10 /nobreak

REM begin recording video
curl http://10.5.5.9/bacpac/SH?t=password^&p=%%01
timeout 60 /nobreak

REM stop recording
curl http://10.5.5.9/bacpac/SH?t=password^&p=%%00

for /l %%a in (1,1,1000) do (

    REM download video files
    wget -b -r -A .MP4 -nH --cut-dirs=3 http://10.5.5.9:8080/videos/DCIM/100GOPRO/
    timeout 10 /nobreak

    REM change to timelapse mode
    curl http://10.5.5.9/camera/CM?t=password^&p=%%03
    timeout 5 /nobreak

    REM begin timelapse
    curl http://10.5.5.9/bacpac/SH?t=password^&p=%%01
    timeout 200 /nobreak

    REM end timelapse
    curl http://10.5.5.9/bacpac/SH?t=password^&p=%%00

    REM download JPEGs
    wget -b -r -A .JPG -nH --cut-dirs=3 http://10.5.5.9:8080/videos/DCIM/100GOPRO/
    timeout 10 /nobreak

    REM change to video mode
    curl http://10.5.5.9/camera/CM?t=password^&p=%%00

    REM wait for awhile until the next measurement
    timeout 200 /nobreak

    REM delete all files (since enough time has elapsed for them to be downloaded)
    curl http://10.5.5.9/camera/DA?t=password
    timeout 10 /nobreak

    REM begin recording video
    curl http://10.5.5.9/bacpac/SH?t=password^&p=%%01
    timeout 60 /nobreak

    REM end recording video
    curl http://10.5.5.9/bacpac/SH?t=password^&p=%%00
)
endlocal

Solution

  • The issue seems to be that running wget in the background while also recording more media overloads the camera and causes it to shut down the Wifi.

    Removing the -b parameter from wget to avoid wget running in the background fixes this issue.