Pluto World ("we," "us," "the Service") is a browser-based caption editor operated from British Columbia, Canada. You can reach us at plutoworld.ai@gmail.com. For the purposes of data-protection law (including Canada's PIPEDA, the EU/UK GDPR, and the California CCPA/CPRA), Pluto World is the controller of the personal data described in this policy.
This policy describes what data the Service collects, why, where it goes, how long we keep it, and the rights you have. It applies to the editor at plutoworld.ai, the marketing site, and the supporting backend.
We collect different categories of data depending on what you do with the Service. Some data lives only in your browser; some lives on our backend; some is briefly forwarded to a third-party provider and not retained.
You can optionally set a creator name to be shown in the watermark credit on free-plan exports. If you set one, we store it linked to your account until you change it, remove it, or close your account.
If you use features that convert your transcript between writing systems (for example native script ↔ romanized text), the transcript text is sent through our backend to a third-party AI provider (Google Gemini) for conversion and returned to your browser. We do not retain the text after the request completes. Transcript text can include whatever was said in your recording, so only use this feature on content you are comfortable processing this way.
There are two render paths, and they differ a lot in what data leaves your device:
(a) On-device export (default where supported). Where your browser and hardware support it, the final captioned video is rendered entirely on your device using your browser's built-in media capabilities. On this path:
(b) Server-rendered export. Some projects, devices, or app versions render on our servers instead. On this path:
You can see and re-download your past server-rendered exports in the Library until they expire, and cancel a running export at any time.
Paid plans are billed through our third-party payment processor (currently Stripe). When you subscribe:
When a longer server-side export finishes, we may send you a transactional email confirming the render is ready. It contains your account email and the export filename. It is not marketing, and it can be disabled by us per environment without affecting the rest of the Service.
When you submit feedback from inside the editor (the post-download rating, the on-cancel prompt, the on-failure prompt, the manual feedback button, or the periodic "how would you feel if you could no longer use this?" survey), we record:
Submitting is always your choice. How often we prompt is controlled by markers stored in your browser — see §7.
The feedback form on plutoworld.ai submits to our backend, which records:
This form does not require sign-in. If you submit it without an email, you are effectively anonymous to us aside from your IP.
We may grant specific users (internal testers, approved accounts) higher or unlimited limits. If we do, we keep an internal note of who, the limit applied, and when it was granted. Most users do not have such an override.
We do not centrally aggregate these logs for analytics; they exist for security, debugging, and abuse investigation only.
Several features run locally in your browser and send nothing about your content to us or anyone else:
| Data | Purpose | Legal basis (GDPR) |
|---|---|---|
| Email + OAuth ID + session token | To authenticate you and let you use the editor | Contract |
| Creator name (optional) | To show your chosen credit in the free-plan watermark | Consent |
| Audio for transcription / language detection / emphasis | To generate captions you requested | Contract |
| Transcript text for script conversion | To convert your transcript between writing systems, when you request it | Contract |
| Video uploaded for a server-rendered export | To render the output you requested | Contract |
| Project snapshot in the export record | To render your export and let you see/re-download it from your Library | Contract |
| Export fingerprint (dedup hash) | To avoid re-rendering an identical export; cost control | Legitimate interest |
| Subscription record (plan, status, period, processor IDs) | To provide and manage your Pro plan | Contract |
| Billing / payment records | To take payment and meet tax and accounting obligations | Contract / Legal obligation |
| Usage records (exports + transcription minutes) | Apply monthly allowances; abuse prevention; account auditability | Legitimate interest / Contract |
| Quota override note (where applicable) | Allow approved testers higher limits | Legitimate interest |
| In-app feedback record | To act on your bug reports, ratings, and survey answers | Consent |
| Landing feedback record (incl. IP) | To respond to you; limit spam and abuse | Consent + Legitimate interest |
| Completion email | Transactional notification that your render is ready | Contract |
| Edge / database / render logs | Security, debugging, abuse investigation | Legitimate interest |
| Data | Where it lives | How long |
|---|---|---|
| Source video / audio file (in your browser) | Your device, while the editor is open | Until you close the tab or load a new file |
| Transcript + project state (in your browser) | Your device (browser localStorage — auto-saved so your project survives reloads) | Until you clear it, start a new project, or clear your browser storage |
| Export scratch space (in your browser) | Your device (browser-managed private storage, used during on-device renders) | Cleared after the render; managed by your browser |
| Downloaded model files (in your browser) | Your device (browser cache) | Until your browser evicts them or you clear the cache |
| Feedback-prompt markers (in your browser) | Your device (browser localStorage) | Until you clear them |
| Auth session token (in your browser) | Your device (browser localStorage) | Until you sign out or the token expires |
| Account email + user ID | Our authentication provider | Until you ask us to delete the account |
| Creator name (optional) | Our database provider | Until you change or remove it, or close your account |
| Source video uploaded for a server-rendered export | Our storage provider | Removed when the render completes, fails, or is cancelled |
| Server-rendered output | Our storage provider | 48 hours after completion, then removed |
| Export record (incl. project snapshot) | Our database provider | Until you ask us to delete it or close your account |
| Usage records | Our database provider | Until you ask us to delete them or close your account |
| Subscription record | Our database provider | While your subscription is active and for as long as needed afterwards; certain billing records may be retained as required by law |
| Card / payment details | Our payment processor (not on our servers) | Per the payment processor's retention policy |
| Quota override note (where applicable) | Our database provider | Until removed by us or by account deletion |
| Audio for transcription / language detection; transcript text for conversion | Forwarded through our backend to the relevant provider | Discarded after the provider responds |
| In-app feedback record | Our database provider | Until you ask us to delete it or close your account |
| Landing feedback record (incl. IP) | Our database provider | Indefinite by default; we will delete on request from the email you provided |
| Completion email metadata | Our email provider | Per the email provider's retention defaults |
| Edge / Worker / database / render logs | Each respective provider | Per each provider's retention defaults |
We try to keep this list minimal. Each provider only receives the data it needs to do its job. We do not sell data, and we do not share data with anyone for advertising.
| Provider | Role | What they receive |
|---|---|---|
| Supabase | Authentication, database, subscription records | Your account email, OAuth ID, session token, and the records described in §2 and §4. Privacy policy |
| Cloudflare | Edge request handling + object storage | API requests to our backend (incl. IPs and request bodies), videos uploaded for server-rendered exports, and rendered outputs. Privacy policy |
| RunPod | GPU compute for server-rendered exports | The source video (via a short-lived link) and the project snapshot, only when a server render runs. Privacy policy |
| ElevenLabs | Speech-to-text | The audio extracted from your video, for the duration of the transcription request. Privacy policy |
| Google (Gemini API) | Language detection, emphasis suggestions, transcript script conversion | Audio sent to detect the spoken language and suggest emphasis; transcript text sent when you use script conversion. Privacy policy |
| Stripe | Payments (Pro plan) | Your card and billing details (entered directly with Stripe) and your subscription status. Privacy policy |
| Resend | Transactional email | Your account email and the export filename, when a completion email is sent. Privacy policy |
| OAuth sign-in (if you choose it) | The fact that you signed into Pluto World. Privacy policy | |
| Vercel | Frontend hosting | Your IP when you load the site; request metadata for the static frontend. Privacy policy |
| Hugging Face | Hosting for on-device model files | Your IP, when the app downloads a speech or text model for on-device use. Your content is never sent. Privacy policy |
| Google Fonts | Web fonts | Your IP, when fonts load. Privacy policy |
| Fontshare | Web fonts | Your IP, when a Fontshare font loads. Privacy policy |
| Adobe (Typekit) | Web fonts (fallback) | Your IP, only if an Adobe font is actually requested. Privacy policy |
Pluto World is operated from Canada, and several of our providers (Cloudflare, Supabase, RunPod, ElevenLabs, Stripe, Resend, Vercel, Google, Hugging Face, Adobe) operate primarily in the United States or across multiple regions. Wherever you are, your data may be transferred to and processed in Canada, the United States, and other countries. If you are in the European Economic Area, the United Kingdom, or Switzerland, transfers rely on the relevant adequacy decisions (including the EU's adequacy decision for Canada's commercial organizations), Standard Contractual Clauses, or equivalent safeguards each provider maintains.
We do not set first-party cookies and we do not use cookies for tracking or advertising. Because we use no tracking cookies, we do not show a cookie-consent banner — everything we store in your browser is strictly necessary for the Service to work. We use the following browser storage:
localStorage so you stay signed in across reloads.localStorage so your project survives a reload. This never leaves your device except through the explicit flows in §2.localStorage that remember whether and when you've already responded to a given prompt, so we don't pester you. These hold only timestamps or a single flag; no personal data. They never leave your device.You can clear all of this at any time from your browser settings.
To keep the Service stable and sustainable, we apply per-account monthly allowances:
Exports count whether they render on your device or on our servers. Allowances reset each billing period — on the 1st of the month for free accounts, and on your renewal date for Pro. If you reach a limit, the request is declined and you're told approximately when it resets. Approved testers may have higher or unlimited limits. We may adjust allowances over time as we balance cost and abuse.
Wherever you are in the world, you can:
To exercise any of these rights, email plutoworld.ai@gmail.com from the email address on your account. We respond within 30 days. We will not discriminate or retaliate against you for exercising any privacy right.
Pluto World is not intended for users under 13, or under the higher minimum age that applies where you live for consenting to online services. We do not knowingly collect data from children below that age. If you are a minor above that age, you must have permission from a parent or legal guardian to use the Service. If you believe a child has submitted data to us, contact us and we will delete it.
We use industry-standard technical and organizational measures to protect your data, including encryption of data in transit, short-lived signed URLs for uploads and downloads, HMAC-verified webhooks, and row-level access controls in our database. Source video uploaded for a server-rendered export is removed from our storage when the render completes, fails, or is cancelled; rendered outputs are removed 48 hours after completion. Payment card details are handled by our payment processor and are not stored on our servers. We restrict internal access to personal data on a need-to-know basis.
No system is perfectly secure. If we ever discover a breach affecting your personal data, we will notify affected users and the relevant authorities without undue delay and within the timelines applicable law requires (for example, 72 hours to the supervisory authority under the GDPR).
The Service uses automated speech-to-text, language detection, emphasis suggestion, script conversion, and automated rendering to produce captioned exports. None of these systems make decisions that have legal or similarly significant effects on you. The transcript output is editable by you and is not used to evaluate, score, or categorize you. On-device person segmentation (§2.12) locates people in the frame for caption placement only; it does not identify anyone and no biometric template is created or stored.
We will update this page when our practices change and update the "Last updated" date at the top. Material changes — new third-party processors, new data categories, or materially expanded purposes — will be communicated by email to account holders and announced on the marketing site at least 14 days before they take effect, where reasonably possible.
For privacy questions, data requests, or anything else covered by this policy: plutoworld.ai@gmail.com