Copy JPG files from a GoPro SD card to split them into sequences by recording
Project description
Panoramax GoPro Downloader
This is a very simple utility script/tool I use for streamlining the process of preparing images taken by a GoPro camera for the upload to Panoramax, in particular for organizing the 360° timelapse images into folders that correspond to each time-series.
The problem
GoPro cameras (at least the GoPro Max I use), save images and videos in a DCIM folder with sub-folders as below:
.
├── DCIM
│ ├── 100GOPRO
│ ├── 101GOPRO
│ ├── 102GOPRO
│ ├── 103GOPRO
│ ├── 104GOPRO
│ ├── 105GOPRO
│ ├── 106GOPRO
│ ├── 107GOPRO
│ ├── 108GOPRO
│ ├── 109GOPRO
│ ├── 110GOPRO
│ ├── 111GOPRO
│ ├── 112GOPRO
│ ├── 113GOPRO
│ └── 114GOPRO
└── MISC
These sub-folders do not correspond to e.g. timelapse image series, but rather just save 999 files in each folder. For many use cases, this is fine, but when doing many timelapse series throughout the day, it becomes cumbersome to find in which sub-folder a time series starts/ends.
The prefix of each GoPro file name indicates the type of recording that created it: For example, GSXXXX.JPG (e.g. GSAA1234.JPG) denotes a picture that's part of a 360° timelapse series named AA, while GPXXXXXX.JPG (e.g. GPAA1234.JPG) denotes pictures that are part of a regular, non-360° timelapse.
When importing images into standard photography suites, this might not matter, but for uploading images to Panoramax, (at least) my workflow is different: Each time series/timelapse represents one sequence that I'd like to upload, from start to finish. And typically I'd like to clean up the start/end images a bit, as often I might have recorded a bit pre- and post-movement. This would be a lot easier if each time series was in its own folder.
The solution
This little tool can be used to split up all images found in the SD-cards DCIM folder into a folder structure that corresponds to the time series/sequences, converting the non-informative 1XXGOPRO above, into a structure like this:
.
├── GSAA
├── GSAB
├── GSAC
├── GSAD
├── GSAE
├── GSAF
└── GSAG
Where each folder represents one sequence of images that make up a timelapse that can be cleaned and uploaded easily.
Install
You can install it from PyPI, using pip install panoramax-gopro-downloader, which will give you the CLI tool.
Alternatively you can install from uv or pipx depending on your preferences:
- run
pipx install panoramax-gopro-downloader, then it'll be available aspanoramax-gopro-downloaderas well, or… - …run it directly via
uvx panoramax-gopro-downloaderif you useuv
Usage
The script has two main commands:
panoramax-gopro-downloader show-filesto list the prefixes/sequences found. By default uses current working directory. You can specify theDCIMfolder by using--input-folderpanoramax-gopro-downloader copy-filesto copy files from either the current working directory (or--input-folder) to the destination specified by--output-folder.
If the output folder doesn't exist yet, it will be created
Development
To develop locally, use uv for managing dependencies etc locally, e.g.:
git clone ssh://git@codeberg.org/gedankenstuecke/panoramax-gopro-downloader.git
uv sync
uv run panoramax-gopro-downloader
## License
This repo is licensed under AGPLv3.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file panoramax_gopro_downloader-0.1.0.tar.gz.
File metadata
- Download URL: panoramax_gopro_downloader-0.1.0.tar.gz
- Upload date:
- Size: 17.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6bf3422cb648d99c39b66f5e246b6a568ca799b04954f378eed24b0780dd9b31
|
|
| MD5 |
55e547aa88061dc0a795717efc416260
|
|
| BLAKE2b-256 |
cd4e0283a378cebc89e27ed3ebe780bcab0a50bf3ca4522e8d6e5dd24577d038
|
File details
Details for the file panoramax_gopro_downloader-0.1.0-py3-none-any.whl.
File metadata
- Download URL: panoramax_gopro_downloader-0.1.0-py3-none-any.whl
- Upload date:
- Size: 17.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44d3286aedd4c7ef9f47be2edb0729c6a7cb9c5211873d293a9464be728f88d7
|
|
| MD5 |
d70ec613b80794d95813e0c89d12786d
|
|
| BLAKE2b-256 |
1554469a7b1fc0a199bfc4a378c86ff3112843d0f7d509239d50ecdd63330716
|