Skip to main content

jyphoto_transfer

Disclosure

  1. Setup required - Users need to create their own Google/Dropbox OAuth apps
  2. Personal use focus - It’s designed for individual use, not multi-tenant production
  3. Prerequisites - Technical comfort with OAuth setup

Installation

pip install jyphoto_transfer

Setup

Before using, you need to set up credentials for both Google and Dropbox.

1. Google Cloud Setup

  1. Go to Google Cloud Console
  2. Create a new project (or select existing)
  3. Go to APIs & Services → Library
  4. Search for “Photos Library API” and click Enable
  5. Go to APIs & Services → Credentials
  6. Click Create Credentials → OAuth client ID
  7. If prompted, configure the OAuth consent screen (choose External, fill in app name)
  8. For application type, choose Web Application and enter your Redirect URL (Should be BASE_URL/callback)
  9. Click Create, then download the JSON file
  10. Save it somewhere safe (e.g., ~/.config/jyphoto_transfer/google_photos_creds.json)
  11. If keeping project in Testing mode, add your test users in Audience.

Google Cloud Console Setup

Add these scopes in the Data Access tab * https://www.googleapis.com/auth/photospicker.mediaitems.readonly * openid * https://www.googleapis.com/auth/userinfo.email

2. Dropbox App Setup

  1. Go to Dropbox App Console
  2. Click Create app
  3. Choose Scoped access and Full Dropbox
  4. Give it a name and click Create app
  5. On the app settings page, note your App key and App secret
  6. Make to give the following permissions
  • files.content.write - to upload files
  • files.metadata.read - to check if files exist (for your get_unique_filename function)
  1. enter your callback URI

3. Environment Config

Create a file called ~/.config/jyphoto_transfer/.env with these values:

BASE_URL=http://localhost:8000/
GOOGLE_CREDS_FILE=google_photos_creds.json
DROPBOX_APP_KEY=your_dropbox_app_key
DROPBOX_APP_SECRET=your_dropbox_app_secret
GOOGLE_TOKEN_FILE=google_token.json 
DROPBOX_TOKEN_FILE=dropbox_token.json 
DROPBOX_FOLDER=/CopiedPhotosLocation
Variable Description
BASE_URL Where the app runs (include trailing slash)
GOOGLE_CREDS_FILE Path to your downloaded Google OAuth JSON
DROPBOX_APP_KEY From Dropbox app settings
DROPBOX_APP_SECRET From Dropbox app settings
GOOGLE_TOKEN_FILE Location of google_token.json
DROPBOX_TOKEN_FILE Location of dropbox_token.json
DROPBOX_FOLDER Dropbox folder to copy photos into

4. Protect Your Secrets

Add these to your .gitignore:

*.env
*_creds.json
google_token.json
dropbox_token.json

Never commit credentials to git!

Usage

from jyphoto_transfer.core import app, serve
serve()

Open your browser to http://localhost:8000, log in with Google, connect Dropbox, select photos, and sync!


Metadata

Release files for jyphoto-transfer 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jyphoto-transfer 0.0.2
File Size Uploaded Provenance Actions
jyphoto_transfer-0.0.2.tar.gz 17.3 kB Without provenance Details for jyphoto_transfer-0.0.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for jyphoto-transfer 0.0.2
File Interpreter ABI Platform Actions
jyphoto_transfer-0.0.2-py3-none-any.whl Python 3 none any Details for jyphoto_transfer-0.0.2-py3-none-any.whl

Total release size: 32.5 kB

Release files / jyphoto_transfer-0.0.2.tar.gz

Download URL jyphoto_transfer-0.0.2.tar.gz
Size 17.3 kB
Tags Source
SHA-256 checksum
How to use checksums
2ec427898099e8140243874c64fd1d5b603aac1cc9c6966ca2d2f0c6786a9008
BLAKE2b-256 checksum
How to use checksums
d98de1b068bd910c83d495a2edd232d21d05ee49b52c49aae4b66baf84fbe0da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / jyphoto_transfer-0.0.2-py3-none-any.whl

Download URL jyphoto_transfer-0.0.2-py3-none-any.whl
Size 15.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0350ffaeb13884abc71441ac839b2ed05a66c38fce487f4b4bda21aec6227ae0
BLAKE2b-256 checksum
How to use checksums
d7c91d5ba89563a5bf7e21c5b77af512cc62f2793082a46e3a0a013c82a624b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Security for jyphoto-transfer 0.0.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page