Privacy policy
How RapBooth handles accounts, private photos, video jobs and browser drafts.
Last updated: 2026-10-28
Accounts and private files
Account details and sessions are stored in Cloudflare D1. Photos you explicitly save are stored in a private Cloudflare R2 bucket. Reading or deleting a saved photo requires its owner's signed-in account.
When you choose Google sign-in, Google shares your account identifier, email address, name and profile photo with RapBooth to create your account or sign you in. We request only basic identity permissions. Account details and authentication tokens are stored in D1. Google handles your Google password; RapBooth does not receive it. You can request deletion through support tickets.
Photo selection is kept in your browser's IndexedDB so it can survive a sign-in redirect. Signed-in drafts are scoped to the account. A guest draft is moved to the account when you choose to sign in from the photo-saving action. Drafts remain on the device until replaced or browser site data is cleared.
Samples and generation
The public visual sample uses synthetic adults and comes from our Hotel Lobby AI project. It is independent of your photos.
Live generation on the production site requires a signed-in account and sufficient credits. Submitting a live job sends both selected portraits to SeeAPI GPT Image 2 to compose a shared first frame. That frame and a preset prompt are sent to SeeAPI Seedance 2.0 to generate the video and audio. SeeAPI receives temporary links to individual files, not access to the storage bucket. The intermediate frame is saved privately alongside the job. Older jobs may continue through Replicate with their original performance template. Expiring a link does not remove a copy the provider already fetched. Generated videos are saved in private R2 and require the owner's signed-in account to play or download.
Development and preview environments use a simulated provider. Their photos stay in private storage and are not sent to an AI provider. Successful simulations return a fixed sample video.
Payments
Stripe processes credit purchases and receives your account name, email and order information. Card details are entered directly in Stripe's hosted checkout. We store order and credit records to track payment and generation usage. New SeeAPI jobs request the selected resolution directly. Older Replicate 480p jobs use Cloudflare Media Transformations before private storage.
Removing photos
Use Delete saved photo in the studio to remove an uploaded photo from R2. Removing a selected photo updates the local draft. These are separate copies. Browser site-data controls can remove the device's stored drafts. On the live site, use support tickets to request removal of an account, generation records or saved videos.
Operations and contact
We use Google Analytics to measure page visits and a small set of actions such as sample playback, photo selection and generation attempts. Analytics storage starts denied. Google can receive limited signals without analytics cookies before you choose; accepting analytics enables those cookies. Advertising permissions stay denied. Use Cookie settings in the footer to change your choice. Global Privacy Control keeps optional product tracking disabled.
After you accept analytics, Microsoft Clarity can record interactions on public pages with strict content masking. Photo controls and generated results are masked. Recording stops before account or administration navigation and when you withdraw consent. We do not send account identifiers to Clarity.
After you accept analytics, PVUV.ai measures public page visits, referral sources, traffic quality and product events for the community contest and conversion analysis. It stores first-party visitor and session identifiers. For signed-in visitors, we send an opaque internal account ID to associate registration, confirmed payments, saved video results and download responses with the visit. We send payment amounts and currencies, but no email addresses, photos or private media URLs. We tag internal visits and retain your analytics consent choice with your account for server events. Withdrawing consent stops future server events for that account, removes browser identifiers and reloads the page to stop collection.
The custom events exclude your photos, filenames, prompts, email and private result URLs. Signed-in actions may also appear in our first-party activity records alongside saved jobs. Server records of saved photos and owned download responses help us operate the service. A download response does not prove that the complete file reached your device.
Cloudflare processes application requests, account data and saved photos. Request and error logs may be used to diagnose problems. Development and preview data are separate from production and may be reset during testing. Account and data requests for the live site can be submitted through support tickets.

