Skip to content

funkstop/jyphoto_transfer

Repository files navigation

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!


About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors