This is a simple Python script that downloads all the media files from your
GoPro Plus cloud account. It uses an unofficial API to list all the media files
and download them to your local machine grouped by capture_at date.
The script will keep track of the downloaded files in a TinyDB database to avoid downloading the same files again and to resume the download if it's interrupted.
Before running the script, you need to install the required dependencies:
- Python 3.12.5
- pip3
- pipenv
- Clone this repository
- Install the required Python environment using
pipenv install - Login to the website https://gopro.com/login and import cookies as JSON from browser using the extension "Cookie-Editor" or any similar.
- Save the cookies as
.jsonin the root directory of this repository. - Run the script using
pipenv run python main.py --help
usage: main.py [-h] --auth AUTH [--date-range DATE_RANGE] [--media-type {Videos,Photos,all}] [--chunk-size CHUNK_SIZE] [--per-page PER_PAGE]
GoPRO Plus Cloud Downloader
Tool to download files from GoPro Plus Cloud as they don't offer such support,
and you have to manually scroll and click to download each file.
Login to the website and import cookies as JSON from browser using
the extension "Cookie-Editor" or similar.
Files will be downloaded in a folder named "downloads" as ZIP archives
grouped by date. Each archive contains the photos and videos from that day based
on the 'captured_at' field.
The script will keep track of the downloaded files in a TinyDB database to avoid
downloading the same files again.
options:
-h, --help show this help message and exit
--auth AUTH Path to the authentication cookies JSON file
--date-range DATE_RANGE
Date range to search for media in format YYYY-MM-DD,YYYY-MM-DD
--media-type {Videos,Photos,all}
Type of media to search for Videos Photos or all
--chunk-size CHUNK_SIZE
The bytes to download in each chunk (default: 8192)
--per-page PER_PAGE Number of items to fetch per page (default: 30)
Whenever you want to restart the process and download all the files again, you can delete the gopro_media_db.json file.
To download all the media files from the cloud:
python main.py --auth cookies.jsonTo download all the files between 2019-01-01 and 2019-12-31:
python main.py --auth cookies.json --date-range 2019-01-01,2019-12-31To download only the photos:
python main.py --auth cookies.json --media-type Photos