This tool will allow you to save all your child's images and videos at full resolution from various service providers. Comments and timestamp info will be applied as EXIF image metadata where possible.
Providers:
Get the latest prebuilt executable from the releases page. Download the zip file for your system/architecture.
macOS Gatekeeper will prevent you from running unsigned apps. You can allow the app from system preferences or by right-clicking the file and choosing open from the menu.
# Print help with command details:
$ tadpoles-backup --help
# Get account statistics
$ tadpoles-backup --provider <service-provider> stat
# Download media (only new files not present in the target dir are downloaded)
$ tadpoles-backup --provider <service-provider> backup <a-local-directory>
# Clear Saved Login
$ tadpoles-backup --provider <service-provider> clear login
You MUST have a www.tadpoles.com account with a tadpoles specific password. You CAN NOT log in to this tool with Google Auth. If you normally log into tadpoles.com with Google/Gmail account verification you will need to request a password reset with the command:
# this simply requests a reset email be sent to you
# it does not change or access your password
$ tadpoles-backup --provider tadpoles reset-password <email>
The tool stores your www.tadpoles.com authentication cookie for future use so that you don't need to enter your password every time. This cookie lasts for about 2 weeks. Your email and password are never stored.
Due to how the system provides download data the backup
command can't use cached data for speed-up.
Every run of the backup
command will fetch all reports and may take some time.
The tool stores your mybrightday.brighthorizons.com api-key for future use so that you don't need to enter your password every time. This api-key may only expire if you change your password. Your email and password are never stored.
Pre-built images are available from the repos Packages page.
$ docker pull ghcr.io/leocov-dev/tadpoles-backup:latest
# list account info
$ docker run --rm -eUSERNAME=<email> -ePASSWORD=<password> ghcr.io/leocov-dev/tadpoles-backup stat
# download new images
$ docker run --rm -eUSERNAME=<email> -ePASSWORD=<password> -v$HOME/Pictures/tadpoles:/images ghcr.io/leocov-dev/tadpoles-backup backup /images
# enable api response caching by mapping app data directory
$ docker run --rm -eUSERNAME=<email> -ePASSWORD=<password> -v$HOME/.tadpoles-backup:/app/.tadpoles-backup ghcr.io/leocov-dev/tadpoles-backup stat
You may also build the docker image locally.
# will be automatically tagged as `tadpoles-backup`
$ make docker-image
Please note that this utility is intended to run as a scheduled job.
Examples are available.
This example configures a CronJob
that will run on a schedule. It's best to configure
this so that only 1 job instance will run at a time. The example uses kustomize
for
configuration to provide authentication environment vars as a secret.
This example configures a basic service with env vars defining the login values. Its important to remember that this service will exit after each run.
See the contributing guide here.
Install the Go version defined in go.mod or use goenv to manage Go (as set by .go-version).
# build for your platform only and run.
$ make && bin/tadpoles-backup --help
Run all unit tests with helper utility. This will build a coverage report as
coverage.html
make test