itsankoff/gopro

By itsankoff

Updated 2 months ago

A download tool for the GoPro Media Library. You can download more than 25 items at a time.

Image
API Management
2

987

GoPro Plus Downloader

Github Repository: https://github.com/itsankoff/gopro-plus

If you’re a GoPro Plus user, you’ve probably felt the frustration of trying to download your media in bulk, only to be stopped by the 25-file limit. This arbitrary restriction makes it tedious 😤😡 to migrate your content to other platforms like Google Drive, Dropbox, or your self-hosted NAS (e.g. Synology).

GoPro Plus is an open-source project designed to enable users to interact with the GoPro Plus media library from the command line. This project aims to provide a convenient way to access and manage your GoPro media without the need to use the web interface.

Usage (Docker environment)

For <AUTH_TOKEN> and <USER_ID> check Environment Variables

docker run --name gopro-downloader -e AUTH_TOKEN='<AUTH_TOKEN>' -e USER_ID='<USER_ID>' -v </path/to/download>:/app/download itsankoff/gopro:latest

or

docker run \
--name gopro-downloader
-e AUTH_TOKEN='<AUTH_TOKEN>' \
-e USER_ID='<USER_ID>' \
-v </path/to/download>:/app/download \
itsankoff/gopro:latest

Supported Docker ENV variable options:

  • -e AUTH_TOKEN=<gopro-auth-token> - (required) authentication token obtained from GoPro Media Library website. See Environment Variables.
  • -e USER_ID=<gopro-user-id> - (required) user id obtained from GoPro Media Library website. See Environment Variables.
  • -e ACTION=<list|download> - (optional) action to execute. The default is download.
  • -e START_PAGE=<number> - (optional) run the <action> from specific page (GoPro Media Library API is paginated). The default 1.
  • -e PAGES=<number> - (optional) run the <action> over the specified number of pages. Default 1000000 which should mean max and will download the all cloud assets.
  • -e PER_PAGE=<number> - (optional) specify number of items per page. Default 15.
  • -e PROGRESS_MODE=<inline|newline|noline> - (optional) specify printing mode for download progress. Default noline.

Environment Variables

To set up AUTH_TOKEN as an environment variable, you'll need to retrieve your JWT token by logging into your GoPro Plus media library account.

  1. Open a browser of choice (Firefox/Chrome is prefered, for Safari you need to enable Developer Tools)
  2. Go to GoPro Plus Media Library (assuming that you are signed out. If you are not, please sing out)
  3. Open your browser's Developer Tools (Ctrl+Shift+I on most browsers or Cmd+Option+I on Mac).
  4. Go to the Network Tab on the Developer Tools console.
  5. In the Filter field enter - user
  6. Open the request and find the Cookies tab in the Sub Preview. You need to find the two mandatory cookies:
    • gp_access_token - usually starts with eyJhbGc.... Copy this long sequence of gibberish characters into the env variable AUTH_TOKEN
    • gp_user_id - the user ID. Copy this ID into the env variable USER_ID

Docker Pull Command

docker pull itsankoff/gopro