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

Overview

GoPro API for Python

GitHub issues Github All Releases PyPi Version

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

Compatibility:

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

Installation

From PyPi:

pip install goprocam

Git (unstable):

git clone http://github.com/konradit/gopro-py-api
cd gopro-py-api
python setup.py 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()

goproCamera.shoot_video(10)

Examples:

See examples for examples on how to use this API.

Documentation:

Documentation is available: docs

Video screencap:

Comments
  • Gopro Fusion compatibility

    Gopro Fusion compatibility

    Hi Konrad,

    Thanks for this lib. I was wondering if there is any plan to support the new gopro fusion. So far from my test you can connect and take_photo(). I have found most of the settings of the camera are still compatible such as Protune, EV change, Raw, photo/video mode etc... Only new settings such as resolution, ISO got new parameters that are not listed in the library.

    However since the fusion is a dual camera I can get or download only the back camera image. l'url return only the back camera file.

    Thanks

    H

    opened by hbardak 43
  • Media download says Not supported while recording or processing media.

    Media download says Not supported while recording or processing media.

    I am using gopro Hero 4 silver. Everytime I connect and capture it works. But when I try downloadLastMedia() option or downloadMedia() it shows "Not supported while recording or processing media."

    The self.isRecording() functions returns 1. What mode should I keep my camera to download the media files?

    opened by sankhakarfa 27
  • Problem with GoProHero3+

    Problem with GoProHero3+

    Hi been trying to solve this for a couple of days - HERO3+Silver - wonder if you have any ideas

    gpCam.overview() File "/usr/local/lib/python3.5/dist-packages/goprocam-3.0.3-py3.5.egg/goprocam/GoProCamera.py", line 1437, in overview self.getStatus(constants.Hero3Status.Mode))) File "/usr/local/lib/python3.5/dist-packages/goprocam-3.0.3-py3.5.egg/goprocam/GoProCamera.py", line 239, in getStatus data = self.getStatusRaw() File "/usr/local/lib/python3.5/dist-packages/goprocam-3.0.3-py3.5.egg/goprocam/GoProCamera.py", line 263, in getStatusRaw return self._request("camera/sx?t=" + self.getPassword()) File "/usr/local/lib/python3.5/dist-packages/goprocam-3.0.3-py3.5.egg/goprocam/GoProCamera.py", line 112, in _request return urllib.request.urlopen(uri, timeout=_timeout, context=_context).read().decode("utf-8") UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 11: invalid start byte

    opened by harwood-yoha 20
  • Initial setup issue (linux/python problem)

    Initial setup issue (linux/python problem)

    Following the README in gopro-py-api: I am up to the step which requires the command: from goprocam import GoProCamera, constants

    I believe this should be easy to troubleshoot, but my minimal experience with Linux and Python both is causing me trouble. I have already successfully installed everything instructed at the beginning of the document. Anytime I attempt the command, it seems to cause many errors and I'm not sure what's happening. Right now, my process is:

    [email protected]:~ $ cd gopro-py-api [email protected]:~/gopro-py-api $ python Python 2.7.13 (default, Sep 26 2018, 18:42:22) [GCC 6.3.0 20170516] on linux2 Type "help", "copyright", "credits" or "license" for more information.

    from goprocam import GoProCamera, constants Traceback (most recent call last): File "", line 1, in File "goprocam/init.py", line 1, in from goprocam import GoProCamera File "goprocam/GoProCamera.py", line 3, in import urllib.request ImportError: No module named request

    Any help would be appreciated, I'm pretty positive the issue is simply stemming from my lack of know-how in linux and/or python.

    opened by chessnecessary 20
  • import goprocam error

    import goprocam error

    ImportError: No Module named request

    Can you please help with this error. I do not understand what is wrong.

    I also did: pip install request, but that didn't solve the problem.

    opened by gbaweja 10
  • Project deployment issue

    Project deployment issue

    Hi there! I wanted to deploy the code on Heroku with Flask server but it returns Application error. Please check the code and help me out on it. Please let me know if any detail is required I would be available.

    opened by Awais9 9
  • GoPro 5 cannot stream to VLC or OpenCV

    GoPro 5 cannot stream to VLC or OpenCV

    Hello:

    First, thanks for all of your work on this api -- it rocks!

    I am having issues streaming from a GoPro 5 to OpenCV and VLC. I first run the gopro_keepalive.py script and then I run the gopro_opencv.py script (and get an error that when Googled tells me that OpenCV did not receive a video stream), or VLC (which doesn't display anything, and upon stopping VLC, get an error that according to a Google search signifies that VLC did not receive a video stream).

    I have attached two screen shots that show the keepalive script running in one window, and opencv and/or VLC in the other. Any insight or advice you have on what I could be doing wrong is greatly appreciated!

    Thanks! Kerri vlc-nostream opencv-vlc-nostream-error

    opened by kerrias 8
  • GoPro 6 can get informations but cannot stream to VLC.

    GoPro 6 can get informations but cannot stream to VLC.

    Hello @KonradIT , Thank you for this amazing API.

    I tried it on Windows 7, i can get the camera connected and get the overview infos, but when it came to streaming it fails. I'm on the firmware 1.60.00, using pythonV3.7.0, and last ffmpegV4 64-bit (i also tried ffmpegV4 32bit just in case), and finally VLC-v3.03 to capture the stream using udp://localhost:5000.

    Here's my code for quick testing :

    from goprocam import GoProCamera
    # from goprocam import constants
    
    gpCam = GoProCamera.GoPro()
    # gpCam.pair(usepin=False)  # I use this as said to pair for the first time.
    
    print(gpCam.overview())  # I get the camera infos here but isRecording == Recording even if it's not !!!
    
    gpCam.stream("udp://localhost:5000")  # I tried to switch order with gpCam.livestream("start") just in case but nothing
    gpCam.livestream("start")
    
    while True:  # just for quick testing
        print()
    

    And here's the output :

    ffmpeg version N-91378-g3f953379e1 Copyright (c) 2000-2018 the FFmpeg developers
      built with gcc 7.3.0 (GCC)
      configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth
      libavutil      56. 18.102 / 56. 18.102
      libavcodec     58. 20.104 / 58. 20.104
      libavformat    58. 17.101 / 58. 17.101
      libavdevice    58.  4.101 / 58.  4.101
      libavfilter     7. 25.100 /  7. 25.100
      libswscale      5.  2.100 /  5.  2.100
      libswresample   3.  2.100 /  3.  2.100
      libpostproc    55.  2.100 / 55.  2.100
    [h264 @ 00997680] non-existing PPS 0 referenced
        Last message repeated 1 times
    [h264 @ 00997680] decode_slice_header error
    [h264 @ 00997680] no frame!
    [h264 @ 00997680] non-existing PPS 0 referenced
        Last message repeated 1 times
    [h264 @ 00997680] decode_slice_header error
    [h264 @ 00997680] no frame!
    [h264 @ 00997680] non-existing PPS 0 referenced
        Last message repeated 1 times
    [h264 @ 00997680] decode_slice_header error
    [h264 @ 00997680] no frame!
    [h264 @ 00997680] non-existing PPS 0 referenced
        Last message repeated 1 times
    [h264 @ 00997680] decode_slice_header error
    [h264 @ 00997680] no frame!
    [h264 @ 00997680] non-existing PPS 0 referenced
        Last message repeated 1 times
    [h264 @ 00997680] decode_slice_header error
    [h264 @ 00997680] no frame!
    [h264 @ 00997680] non-existing PPS 0 referenced
        Last message repeated 1 times
    [h264 @ 00997680] decode_slice_header error
    [h264 @ 00997680] no frame!
    [h264 @ 00997680] non-existing PPS 0 referenced
        Last message repeated 1 times
    [h264 @ 00997680] decode_slice_header error
    [h264 @ 00997680] no frame!
    [h264 @ 00997680] non-existing PPS 0 referenced
        Last message repeated 1 times
    [h264 @ 00997680] decode_slice_header error
    [h264 @ 00997680] no frame!
    [mpegts @ 00982900] Could not find codec parameters for stream 2 (Unknown: none ([128][0][0][0] / 0x0080)): unknown codec
    Consider increasing the value for the 'analyzeduration' and 'probesize' options
    Input #0, mpegts, from 'udp://10.5.5.9:8554':
      Duration: N/A, start: 0.066733, bitrate: N/A
      Program 1 
        Stream #0:0[0x1011]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuvj420p(pc, bt709, progressive), 848x480 [SAR 1:1 DAR 53:30], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
        Stream #0:1[0x1100]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 193 kb/s
        Stream #0:2[0x200]: Unknown: none ([128][0][0][0] / 0x0080)
    Please use -b:a or -b:v, -b is ambiguous
    Stream mapping:
      Stream #0:0 -> #0:0 (h264 (native) -> mpeg2video (native))
      Stream #0:1 -> #0:1 (aac (native) -> mp2 (native))
    Press [q] to stop, [?] for help
    [h264 @ 00a33280] concealing 1127 DC, 1127 AC, 1127 MV errors in P frame
    [swscaler @ 08b63e00] deprecated pixel format used, make sure you did set range correctly
    Output #0, mpegts, to 'udp://localhost:5000':
      Metadata:
        encoder         : Lavf58.17.101
        Stream #0:0: Video: mpeg2video (Main), yuv420p, 848x480 [SAR 1:1 DAR 53:30], q=2-31, 800 kb/s, 30 fps, 90k tbn, 30 tbc
        Metadata:
          encoder         : Lavc58.20.104 mpeg2video
        Side data:
          cpb: bitrate max/min/avg: 0/0/800000 buffer size: 0 vbv_delay: -1
        Stream #0:1: Audio: mp2, 48000 Hz, stereo, s16, 384 kb/s
        Metadata:
          encoder         : Lavc58.20.104 mp2
    [h264 @ 05f86c00] concealing 1142 DC, 1142 AC, 1142 MV errors in P frame
    [h264 @ 00a33a40] cabac decode of qscale diff failed at 51 8
    [h264 @ 00a33a40] error while decoding MB 51 8, bytestream 2671
    [h264 @ 00a33a40] concealing 1164 DC, 1164 AC, 1164 MV errors in P frame
    [h264 @ 00a33280] concealing 504 DC, 504 AC, 504 MV errors in P frame
    [h264 @ 00a33280] concealing 278 DC, 278 AC, 278 MV errors in P frame
    [h264 @ 00a40000] concealing 129 DC, 129 AC, 129 MV errors in P frame
    [h264 @ 00a33640] error while decoding MB 23 5, bytestream -33
    [h264 @ 00a33640] concealing 1351 DC, 1351 AC, 1351 MV errors in I frame
    [h264 @ 00a33640] cabac decode of qscale diff failed at 0 23
    [h264 @ 00a33640] error while decoding MB 0 23, bytestream 500
    [h264 @ 00a33640] concealing 420 DC, 420 AC, 420 MV errors in P frame
    [h264 @ 00a33640] cabac decode of qscale diff failed at 20 24
    [h264 @ 00a33640] error while decoding MB 20 24, bytestream 302
    [h264 @ 00a33640] concealing 347 DC, 347 AC, 347 MV errors in P frame
    [h264 @ 00a33280] cabac decode of qscale diff failed at 47 14
    [h264 @ 00a33280] error while decoding MB 47 14, bytestream 1797
    [h264 @ 00a33280] concealing 850 DC, 850 AC, 850 MV errors in P frame
    [h264 @ 00a33280] cabac decode of qscale diff failed at 41 22
    [h264 @ 00a33280] error while decoding MB 41 22, bytestream 580
    [h264 @ 00a33280] concealing 432 DC, 432 AC, 432 MV errors in P frame
    [h264 @ 00a33280] concealing 1162 DC, 1162 AC, 1162 MV errors in P frame
    [h264 @ 00a33280] cabac decode of qscale diff failed at 10 18
    [h264 @ 00a33280] error while decoding MB 10 18, bytestream 1542
    [h264 @ 00a33280] concealing 675 DC, 675 AC, 675 MV errors in P frame
    [h264 @ 00a33280] concealing 1140 DC, 1140 AC, 1140 MV errors in P frame
    [h264 @ 00a40000] cabac decode of qscale diff failed at 20 6
    [h264 @ 00a40000] error while decoding MB 20 6, bytestream 2778
    [h264 @ 00a40000] concealing 1301 DC, 1301 AC, 1301 MV errors in P frame
    [h264 @ 00a40000] concealing 1162 DC, 1162 AC, 1162 MV errors in P frame
    [h264 @ 00a40000] concealing 890 DC, 890 AC, 890 MV errors in P frame
    [h264 @ 00a40000] concealing 471 DC, 471 AC, 471 MV errors in P frame
    [h264 @ 00a33a40] cabac decode of qscale diff failed at 22 20
    [h264 @ 00a33a40] error while decoding MB 22 20, bytestream 1036
    [h264 @ 00a33a40] concealing 557 DC, 557 AC, 557 MV errors in P frame
    [h264 @ 05f86c00] concealing 178 DC, 178 AC, 178 MV errors in P frame
    [h264 @ 05f86c00] cabac decode of qscale diff failed at 20 20
    [h264 @ 05f86c00] error while decoding MB 20 20, bytestream 1802
    [h264 @ 05f86c00] concealing 559 DC, 559 AC, 559 MV errors in P frame
    [h264 @ 05f86c00] cabac decode of qscale diff failed at 36 25
    [h264 @ 05f86c00] error while decoding MB 36 25, bytestream 714
    [h264 @ 05f86c00] concealing 278 DC, 278 AC, 278 MV errors in P frame
    [h264 @ 05f86c00] concealing 1240 DC, 1240 AC, 1240 MV errors in P frame
    [h264 @ 05f86c00] concealing 676 DC, 676 AC, 676 MV errors in P frame
    [h264 @ 00a33a40] concealing 108 DC, 108 AC, 108 MV errors in P frame
    [h264 @ 05f86c00] error while decoding MB 52 28, bytestream -5
    [h264 @ 05f86c00] concealing 103 DC, 103 AC, 103 MV errors in P frame
    [h264 @ 05f86c00] concealing 881 DC, 881 AC, 881 MV errors in P frame
    [h264 @ 00a33a40] cabac decode of qscale diff failed at 25 6
    [h264 @ 00a33a40] error while decoding MB 25 6, bytestream 3839
    [h264 @ 00a33a40] concealing 1296 DC, 1296 AC, 1296 MV errors in P frame
    [h264 @ 00a33a40] concealing 1017 DC, 1017 AC, 1017 MV errors in P frame
    [h264 @ 00a33a40] concealing 1284 DC, 1284 AC, 1284 MV errors in P frame
    [h264 @ 00a33280] concealing 812 DC, 812 AC, 812 MV errors in P frame
    [h264 @ 00a40000] concealing 570 DC, 570 AC, 570 MV errors in P frame
    [h264 @ 00a33280] concealing 1233 DC, 1233 AC, 1233 MV errors in P frame
    [h264 @ 00a33280] concealing 622 DC, 622 AC, 622 MV errors in P frame
    [h264 @ 00a33280] cabac decode of qscale diff failed at 7 21
    [h264 @ 00a33280] error while decoding MB 7 21, bytestream 39601
    [h264 @ 00a33280] concealing 519 DC, 519 AC, 519 MV errors in P frame
    [h264 @ 00a33640] cabac decode of qscale diff failed at 6 10
    [h264 @ 00a33640] error while decoding MB 6 10, bytestream 19291
    [h264 @ 00a33640] concealing 1103 DC, 1103 AC, 1103 MV errors in P frame
    [h264 @ 00a33640] concealing 1273 DC, 1273 AC, 1273 MV errors in P frame
    [h264 @ 00a33640] concealing 1232 DC, 1232 AC, 1232 MV errors in P frame
    [h264 @ 00a33640] concealing 1257 DC, 1257 AC, 1257 MV errors in P frame
    [h264 @ 00a33640] concealing 1008 DC, 1008 AC, 1008 MV errors in P frame
    [h264 @ 00a33280] concealing 164 DC, 164 AC, 164 MV errors in P frame
    [h264 @ 00a40000] concealing 1159 DC, 1159 AC, 1159 MV errors in P frame
    [h264 @ 00a40000] concealing 1135 DC, 1135 AC, 1135 MV errors in P frame
    [h264 @ 00a40000] concealing 1092 DC, 1092 AC, 1092 MV errors in P frame
    [h264 @ 00a40000] cabac decode of qscale diff failed at 0 16
    [h264 @ 00a40000] error while decoding MB 0 16, bytestream 1526
    [h264 @ 00a40000] concealing 791 DC, 791 AC, 791 MV errors in P frame
    [h264 @ 05f86c00] cabac decode of qscale diff failed at 6 7
    [h264 @ 05f86c00] error while decoding MB 6 7, bytestream 3098
    [h264 @ 05f86c00] concealing 1262 DC, 1262 AC, 1262 MV errors in P frame
    [h264 @ 05f86c00] concealing 1045 DC, 1045 AC, 1045 MV errors in P frame
    

    And sometimes is starts with :

    [mpegts @ 0000000000502d40] PES packet size mismatch
        Last message repeated 1 times
    [mpegts @ 0000000000502d40] Could not find codec parameters for stream 2 (Unknown: none ([128][0][0][0] / 0x0080)): unknown codec
    Consider increasing the value for the 'analyzeduration' and 'probesize' options
    

    Do i need to upgrade to the last firmware 2.01 ? i hope not, it's a disaster ^^" Can you help with this one please ?

    Thank you so much for keeping this a live. Karam.

    opened by neokyuubi 7
  • Hero 10 webcam python script

    Hero 10 webcam python script

    Hallo I´m working on a script and want to read the hero 10 webcam video, but I do not want to show it with vlc player like it´s implementet, I want to use cv2

    But I can´t get it working. The connection works I connect to the camera the hero 10 shows that webcam is aktiv, but I do not get a stream.

    I did the same over wifi, therfore I get the stream but it was to laggy

    Can you help me?

    import cv2
    from time import time
    import socket
    from goprocam import GoProCamera, constants
    import queue
    import threading
    
    gpCam = GoProCamera.GoPro(ip_address="172.22.141.51")
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    t=time()
    gpCam.livestream("start")
    gpCam.video_settings(res='1080p', fps='30')
    
    q=queue.Queue()
    
    def Receive():
        print("start Reveive")
        cap = cv2.VideoCapture("udp://172.22.141.51:8554", cv2.CAP_FFMPEG)
        while True:
            ret, frame = cap.read()
            if not ret or frame is None:
                print('video is all read')
                break
            q.put(frame)
        
        cap.release()
        cv2.destroyAllWindows()
    
    
    def Display():
        print("Start Displaying")
        t=time()
        while True:
            if q.empty() !=True:
                frame=q.get()
                cv2.imshow("GoPro OpenCV", frame)
            if cv2.waitKey(1) & 0xFF == ord('q'):
                    break
            if q.empty() != True:
                frame = q.get()
                # Save the picture 
                cv2.imshow("GoPro OpenCV", frame)
                # cv2.imshow(save_name, frame)
                if cv2.waitKey(1) & 0xFF == ord('q'):
                    break
                if time() - t >= 2.5:
                    sock.sendto("_GPHD_:0:0:2:0.000000\n".encode(), ("172.22.141.51", 8554))
                    t=time()
    
    
    if __name__=='__main__':
        p1 = threading.Thread(target=Receive)
        p2 = threading.Thread(target=Display)
        p1.start()
        p2.start()
    
    opened by druckgott 6
  • Added webcam features

    Added webcam features

    Thanks to @gurgelx for his webcam project.

    Added:

    • gpWebcam call driver
    • helper method getWebcamIP
    • Calls startWebcam, stopWebcam, webcamFOV and getWebcamPreview (launches VLC)
    • renewWebcamIP (renews IP address)
    opened by KonradIT 6
  • gpCam.pair AttributeError: 'module' object has no attribute '_create_unverified_context'

    gpCam.pair AttributeError: 'module' object has no attribute '_create_unverified_context'

    Thank you for sharing this API I'm using goprocam (1.9.6) on python 3 with gopro hero 4 session. Unfortunately my terminal looks like this: [email protected]:~ $ python3 Python 3.4.2 (default, Oct 19 2014, 13:31:11) [GCC 4.9.1] on linux Type "help", "copyright", "credits" or "license" for more information.

    from goprocam import GoProCamera from goprocam import constants gpCam = GoProCamera.GoPro(constants.gpcontrol) Waking up... Camera successfully connected! Connected to 10.5.5.9 gpCam.pair() Make sure your GoPro camera is in pairing mode! Go to settings > Wifi > PAIR > GoProApp to start pairing. Then connect to it, the ssid name should be GOPRO-XXXX/GPXXXXX/GOPRO-BP-XXXX and the password is goprohero Enter pairing code: 4680 Traceback (most recent call last): File "", line 1, in File "/home/pi/.local/lib/python3.4/site-packages/goprocam/GoProCamera.py", line 362, in pair context = ssl._create_unverified_context() AttributeError: 'module' object has no attribute '_create_unverified_context'

    opened by Berryfier 6
  • GoPro HERO 10 power_off() and power_on()

    GoPro HERO 10 power_off() and power_on()

    Hi everyone, I'm studying this amazing library.

    I've a GoPro HERO 10 that I want to control with the USB cable. I tried to take a picture and it seems to work.

    Then I wanted to try the "turn off - turn on" behavior but the power_on()method does not work. it says "Waking..." but nothing happens

    How it supposed to work?

    Thanks in advance

    opened by Sladerix 1
  • Gopro Hero 11 support

    Gopro Hero 11 support

    Dear all I was using the library for a while with my GPH10. Recently I received my new GPH11 and unfortunately the gopro-py-api does not work anymore, like with GPH10. Does someone know what the difference in the firmware is? I would appreciate, if someone could help getting the gopro-py-api for Gopro Hero 11 compatible.

    Thanks for your help Regards Bartelime

    opened by Bartelime 3
  • ERROR: HTTP Error 500: Internal Server Error when trying to download images

    ERROR: HTTP Error 500: Internal Server Error when trying to download images

    Describe the bug Error 500 when downloading images from a Gopro Hero 4.

    To Reproduce Steps to reproduce the behavior:

    1. Use the script provided in examples: https://github.com/KonradIT/gopro-py-api/blob/master/examples/dump_sdcard.py
    2. Error 500 will appear

    Expected behavior Files to be downloaded correctly without error.

    Screenshots

    $ python gopro-download-all.py
    HERO4 Silver
    HD4.01.05.00.00
    Camera successfully connected!
    filename: GOPR0006.JPG
    ERROR: HTTP Error 500: Internal Server Error
    filename: GOPR0007.JPG
    ERROR: HTTP Error 500: Internal Server Error
    filename: GOPR0008.JPG
    ERROR: HTTP Error 500: Internal Server Error
    

    Desktop (please complete the following information):

    • OS: Raspbian
    • goprocam 4.2.0
    • Python 3.9.2

    Additional context

    • Tried to browse URL using lynx. List is served with HTTP Status 200, but got 500 when trying to download.
    • Images are 3MB
    opened by tvial-tagheuer 0
  • GoPro Hero 9 connected via USB - take_photo() not returning

    GoPro Hero 9 connected via USB - take_photo() not returning

    @KonradIT

    I was following a discussion from https://github.com/gopro/OpenGoPro/discussions/146. I connect my GoPro Hero 9 (firmware v1.21) to my MacBook Pro via USB. I am running code you provided AlanEbell in PyCharm with a little modification to account for the UUID (code is provided below). When I run the program, the code takes a photo and saves it onto the SD card in the GoPro but it does not download the photo onto my laptop and does not stop until I stop the program. When I tried gopro.shoot_video(10) the command would start taking a video but it would go over the 10 second duration until I manually stop the recording on the GoPro and the code. When I debug the issue I find out that the program is stuck at the command gopro.take_photo() or gopro.shoot_video() where the command is not being completed and that the command is going into an infinite loop at GoProCamera.py line 587 to 589 (for gopro.take_photo()) where ready = "" stating that it is still busy.

    When I run the same code in Windows 10 (again in PyCharm), instead of getting an infinite loop I get an error message stating Connectionreseterror: [winerror 10054] an existing connection was forcibly closed by the remote host

    What is weird is before I downgraded the firmware to v1.21, I ran the program and I was not able to take a photo or video but the program would be able to download the last saved photo/video from the SD card.

    from goprocam import GoProCamera, constants
    import netifaces as ni
    
    interface_port = 0
    ifaces = ni.interfaces()
    for iface in ifaces:
        try:
            ip = ni.ifaddresses(iface)[ni.AF_INET][0]["addr"]
            if ip.startswith("172."):
                print(f"IP: {ip} from Interface {iface}")
                interface_port = iface
        except:
            pass
    
    
    def record_video(interface: str) -> None:
        gopro = GoProCamera.GoPro(ip_address=GoProCamera.GoPro.getWebcamIP(
            interface), camera=constants.gpcontrol, webcam_device=interface, api_type=constants.ApiServerType.OPENGOPRO)
        try:
            r = gopro.setWiredControl(constants.on)
            gopro.checkResponse(r)
        except:
            pass  # sometimes throws 500 server error when camera is already on wired control mode
    
        print("Taking Photo")
        r = gopro.take_photo(1) # Error creating infinite while loop in GoProCamera.py line 587 to 589
        print(r)
        print("Photo Taken")
        gopro.downloadLastMedia()
        r = gopro.delete(constants.Delete.LAST)
        gopro.checkResponse(r)
        exit()
    
    
    record_video(interface_port)
    

    MacOS Monterey 12.5.1 Windows 10 PyCharm GoPro Hero 9 v1.21

    opened by Peter-S-G 1
  • GoPro MAX Metadata during Livestream

    GoPro MAX Metadata during Livestream

    Hi,

    does the GoPro MAX deliver metadata during livestreaming camera.livestream("start")? My goal is to read GPS and Gyroscope metadata of every x-th frame

    Thanks

    opened by Tr4in 0
  • Connect ubuntu and gopro10 with USB

    Connect ubuntu and gopro10 with USB

    Hello! I want to use USB to control the camera I also see the following solutions https://github.com/gopro/OpenGoPro/discussions/146

    According to its steps, I can now use the win10 to control the camera But when using ubuntu again I encountered the same mistake as 146 Don't know how to set the Linux kernel device identifier

    Run ls /dev/* Results of the command dev/libmtp-1-2.1

    I wonder if this problem has been successfully solved in the end? (discussions/146)

    We are looking forward to your reply Thank you very much

    opened by yangshubin27400430 1
Releases(v4.1.0)
Owner
Konrad Iturbe
Dedicated to modifying commercial-grade drones, cameras and other ARM-based devices.
Konrad Iturbe
Build a better understanding of your data in PostgreSQL.

Data Fluent for PostgreSQL Build a better understanding of your data in PostgreSQL. The following shows an example report generated by this tool. It g

Mark Litwintschik 28 Aug 30, 2022
A Python wrapper for discord slash-commands, designed to extend discord.py.

dislash.py An extending library for discord.py that allows to build awesome slash-commands. ⭐

173 Dec 19, 2022
SEBUAH TOOLS CRACK FACEBOOK & INSTAGRAM DENGAN FITUR YANGMENDUKUNG

SEBUAH TOOLS CRACK FACEBOOK & INSTAGRAM DENGAN FITUR YANGMENDUKUNG

Jeeck X Nano 1 Dec 27, 2021
This repo contains a small project i've done using PILLOW module in python

This repo contains a small project i've done using PILLOW module in python. I wrote an automated script which generates more than 5k+ unique nfts with 0 hassle in less time.

SasiVatsal 11 Nov 05, 2022
To send an Instagram message using Python

To send an Instagram message using Python, you must have an Instagram account and install the Instabot library in your Python virtual environment.

Coding Taggers 1 Dec 18, 2021
A bot that downloads all the necessary files from WeLearn and lists your assignments, filter due assignments, etc.

Welearn-bot This is a bot which lets you interact with WeLearn from the command line. It can Download all files/resources from your courses and organi

Parth Bibekar 17 Oct 19, 2022
A Telegram Bot to generate permanent Stream and Download links for any Telegram file

Telegram File To Stream Link This bot will give you permanent Stream and Download links for Telegram files Deploy the Bot Press the below button to de

Shadow 80 Dec 16, 2022
Watches your earnings on EarnApp and notifies you when you earned balance or received an payout.

EarnApp-Earning-Monitor Watches your earnings on EarnApp and notifies you when you earned balance or received an payout. Installation Install Python3

Yariya 21 Oct 17, 2022
Role Based Access Control for Slack-Bolt Applications

Role Based Access Control for Slack-Bolt Apps Role Based Access Control (RBAC) is a term applied to limiting the authorization for a specific operatio

Jeremy Schulman 7 Jan 06, 2022
Simple script to extract useful informations from the combo BloodHound + Neo4j

bloodhound-quickwin Simple script to extract useful informations from the combo BloodHound + Neo4j. Can help to choose a target. Prerequisites python3

140 Dec 21, 2022
A Telegram bot that scrapes websites for available vaccination appointments to notify users. (German)

@dachau_impf_bot 🇬🇧 A Telegram bot to check the contents of https://termin.dachau-med.de for available slots and inform users of the available dates

1 Nov 21, 2021
Materials for the AMS 2022 Student Conference Python Workshop.

AMS 2022 Student Conference Python Workshop Let's talk MetPy! Here you will find a collection of notebooks we will be demonstrating and working throug

Unidata 4 Dec 13, 2022
Simple Reddit bot that replies to comments containing a certain word.

reddit-replier-bot Small comment reply bot based on PRAW. This script will scan the comments of a subreddit as they come in and look for a trigger wor

Kefendy 0 Jun 04, 2022
Lib for create and show QRCode to PIX, you can show this code in another applications for payment by final consumer.

Biblioteca para a geração de codigos QR (BRCode como chamados na documentação do BACEN) a fins de facilitar a exibição para pagamentos ao consumidor.

João Camargo 13 Oct 05, 2022
Diablo II Resurrected helper

Diablo II Resurrected 快捷施法辅助 功能: + 创建守护进程,注册全局热键 alt+/ 启用和关闭功能 (todo: 播放声音提示) + 按 x 强制移动 + 按 1 ~ 0 快捷施法到鼠标区域 使用 编辑配置 settings.py 技能信息做如下定义: SKILLS:

Wan 2 Nov 06, 2022
RedFish API Toolkit

RedFish API Toolkit RedFish API Toolkit Build Status GitHub Actions Travis CI Requirements requirements.txt requirements-dev.txt Dependencies Document

Larry Smith Jr. 1 Nov 20, 2021
An Simple Advance Auto Filter Bot Complete Rewritten Version Of Adv-Filter-Bot

Adv Auto Filter Bot V2 This Is Just An Simple Advance Auto Filter Bot Complete Rewritten Version Of Adv-Filter-Bot.. Just Sent Any Text As Query It Wi

0 Dec 18, 2021
GBSLocalLauncher - A script to compose ENV file for Local Compose

GBSLocalLauncher This is a script to compose ENV file for Local Compose. It crea

2 Jan 27, 2022
Wrapper around the Mega API

python-mega Overview Wrapper around the Mega API. Based on the work of Julien Marchand. Installation Install using pip, including any optional package

Juan Riaza 104 Nov 26, 2022
OliviaV2: danger bot with python

🎶 OLIVIA V2 🎵 Requirements 📝 FFmpeg NodeJS nodesource.com Python 3.7 or higher PyTgCalls 🧪 Get SESSION_NAME from below: Pyrogram 🎖 History Featur

Alvaro Einstein 2 Nov 04, 2021