Google Drive sync + Sign in with Google: bring your photos and your account in one click
This week was all about Google. You can now connect Google Drive to pull your existing photos and documents into neuthek without uploading by hand, sign in with Google (or link a Google account to an existing email + password account from Settings), and trust that everything stays opt-in — Drive content is fenced out of AI training by default, and your Google identity is used only to sign you in, never sold or shared.
Problems we found
What wasn't working as well as it should have.
- Getting an existing photo library into neuthek meant uploading by hand — fine for ten photos, miserable for ten thousand.
- If you signed up with email + password, there was no way to also use Sign in with Google for the same account: clicking 'Continue with Google' would create a separate, empty profile.
- Signing in with Google failed when you'd previously authorised the app for Drive — Google adds the Drive scope back on subsequent flows and our token exchange refused the response.
- Once Drive was connected, photos and documents synced but nothing ever auto-grouped them into folders that matched your Drive layout.
- After connecting Drive, the AI summary counter would sometimes camp at, say, 58 of 59 forever because one image returned no caption and got requeued in a loop.
How we fixed them
What changed in this release to fix the issues above.
- Built one-click Google Drive sync — Settings → Cloud sync → Connect Google Drive. We use the read-only `drive.readonly` scope (we can never write to your Drive), encrypt the refresh token at rest with Fernet, and run an hourly background sweep so new files arrive automatically.
- Settings → Account → Sign-in & security now has a Link Google button that attaches a Google identity to an existing neuthek account. Sign in with Google from the auth screen now lands in the same account.
- Token-exchange failures fixed by setting OAUTHLIB_RELAX_TOKEN_SCOPE=1 so Google's scope expansion stops being treated as a mismatch. The id_token is still verified against Google's keys.
- Drive sync now mirrors your Drive folder tree into neuthek — a top-level 'Google Drive' folder with every sub-folder preserved underneath, so your library looks like your Drive looks.
- AI summaries stop retrying photos the model can't caption. Counter drains to N/N instead of getting stuck.
New features
Brand-new capabilities that weren't there last week.
- Google Drive sync (read-only, PKCE OAuth, encrypted refresh tokens, hourly sweep, conflict detection).
- Sign in with Google on the auth screen — one click, no email-verification round-trip.
- Link Google to an existing neuthek account from Settings.
- Per-source AI opt-in toggle in the cloud-sync panel, so Drive content stays out of the AI training pipeline by default (Google Limited Use policy compliance).
- Conflict banner in the cloud-sync panel when neuthek detects you edited a file locally after it last synced.
Why this matters
If the easiest way to get your photos into neuthek is to download them from Drive and re-upload, you're not going to do it. Drive sync removes that friction. And Sign in with Google removes the friction of remembering another password — but only if it actually lands in the right account, which it now does whether you started with email or with Google. Drive's Limited Use policy also means cloud content can't be used to train AI models, so we kept AI off-by-default for synced files; you choose per-source whether to enable summaries and face recognition.
What this means for you
How the changes actually show up when you use neuthek.
- Open Settings → Cloud sync, click Connect Google Drive, grant consent on Google's screen — you come back to a synced library inside a 'Google Drive' folder. Click Sync now to pull immediately, or let the hourly sweep handle it.
- On the sign-in screen, click 'Continue with Google'. If you already have a neuthek account with that Google email or with Google linked in Settings, you land in it. If not, you get a fresh account.
- Open Settings → Account → Sign-in & security → 'Link Google' to attach Google sign-in to your current account. The row flips to 'Unlink' once linked.
- Inside Settings → Cloud sync, toggle 'Enable AI features for Google Drive files' per source if you want AI summaries and face detection to run on synced photos. Default is off.