Privacy Policy
Privacy Policy
Effective Date: April 4, 2026 Last Updated: June 12, 2026 Entity: Enid Ltd ("us", "we", or "our") Service: CastReader browser extension and the CastReader website at castreader.com (collectively, the "Service")
This Privacy Policy explains what data CastReader collects, how we use it, and the choices you have. We designed CastReader with privacy in mind — most processing happens locally in your browser, and we collect only what is necessary to make the Service work.
What changed in the June 2026 update: CastReader introduced an optional account system and a paid Pro plan. This policy now describes the account data (Google sign-in), payment processing (Stripe), the AI Explain feature's data flow, and daily usage metering. Core reading remains usable without any account.
1. What CastReader Does
CastReader is a browser extension with two main features:
Read Aloud (TTS). When you click the extension icon:
- Text extraction happens locally in your browser — the extension reads the page's DOM to find the article content. No page content is sent to our servers for extraction.
- For Kindle Cloud Reader, the extension uses local OCR (tesseract-wasm running inside your browser) to read rendered page images. OCR processing is entirely local — no images or book content are uploaded for reading.
- For WeRead (微信读书), the extension reads chapter data from the page's existing API responses within your browser. No additional network requests are made to WeRead's servers.
- Text-to-speech conversion: extracted text is sent to the CastReader TTS API server to generate audio. This is the only step of Read Aloud where page content leaves your browser.
AI Explain (解读). When you click Explain, the relevant page text — and, on pages that cannot be annotated directly (e.g. canvas-rendered books), a screenshot of the visible reading area — is sent to the CastReader Explain server where a large language model generates a guided explanation and on-page annotations, and our TTS generates the narration. This happens only when you explicitly click Explain, never in the background.
2. Data We Collect
2.1 Account Data (optional — only if you sign in)
CastReader works without an account. If you choose to sign in (required only for the Pro subscription and linking your devices), we use Google Sign-In and store:
- Your name, email address, and profile picture as provided by Google
- An account identifier, your subscription status/plan, and which extension device IDs you have linked
We do not receive or store your Google password. We do not access your Google Drive, Gmail, contacts, or any other Google data.
2.2 Payments (Pro)
Payments are processed by Stripe. Your card or Alipay details go directly to Stripe — we never see or store your full payment credentials. We store the subscription records Stripe reports to us (plan, amount, billing period, status) to operate your Pro entitlement, and retain them as required for accounting and tax purposes. Stripe's privacy policy: https://stripe.com/privacy
2.3 Usage Metering (free-tier quotas)
To operate the free tier fairly, our server keeps per-device daily counters: seconds of audio listened (free listening time) and number of AI Explain runs. These counters are keyed to your random device ID (see 2.5), reset daily, and contain no page content.
2.4 Content Sent for Processing
- Read Aloud: extracted text is sent to the CastReader TTS API solely to generate the audio response. It is processed in memory, not used for training or advertising, and not shared with third parties.
- AI Explain: the page text (and screenshot, where applicable) is sent to the CastReader Explain server solely to generate the explanation. It is not used for training and not retained after processing; transient server logs are deleted within 30 days.
- Share / Send to Phone: if you use these features, the content you choose to share is stored only as long as needed to provide the feature. Live sessions expire automatically; shared pages can be deleted by you.
2.5 Anonymous Usage Analytics
We collect anonymous product analytics to improve the Service. Each event contains:
- Device ID: a randomly generated UUID stored locally in your browser (
chrome.storage.local). It is not derived from your identity or hardware. - Event type and properties: a small set of product events — e.g. install/update, session start, reading started/finished, extraction failed, Explain pipeline succeeded/failed, paywall shown, errors — with non-identifying context such as the website hostname (e.g. "en.wikipedia.org"), content length bucket, extension version, timezone, and error codes.
We do NOT collect: the full text of pages you read, browsing history or URLs beyond the hostname, passwords or form data, or advertising identifiers. IP addresses are not stored by our analytics; they may appear in standard server access logs, which are deleted after 30 days.
2.6 Extension Settings
Your preferences (voice, speed, language, highlight color) are stored locally in chrome.storage.local on your device.
2.7 Websites
On castreader.com we use privacy-focused, cookie-free web analytics (Plausible) for aggregate traffic statistics. Signing in on castreader.com sets the cookies required for your login session.
3. Browser Extension Permissions
| Permission | Purpose |
|---|---|
activeTab | Read the current page's DOM to extract article text when you click the extension |
storage | Store your settings, device ID, and quota/announcement flags locally |
scripting | Inject the highlight overlay and content scripts for special sites (Kindle, WeRead) |
contextMenus | "Read selected text" in the right-click menu |
alarms | Periodic analytics queue flush in the background service worker |
offscreen | Run tesseract-wasm OCR locally for Kindle text extraction |
Host access incl. <all_urls> | Two uses: reading the page you ask CastReader to read (content scripts), and captureVisibleTab screenshots only when you click Explain on pages that cannot be annotated directly. CastReader never reads or captures pages in the background. |
4. Data We Do NOT Collect
- No browsing history: we do not track which pages you visit. The extension only acts on a page when you invoke it.
- No page content storage: text sent for TTS/Explain is processed and discarded, not banked.
- No advertising: no ads, no ad networks, no sale or rental of data to anyone.
- No third-party tracking: no Google Analytics, no Facebook Pixel.
- No payment credentials: card/Alipay details live only at Stripe.
5. Data Storage and Security
- Local data (settings, device ID) lives in
chrome.storage.local, sandboxed from websites. - All transmission is over HTTPS.
- Account and subscription records are stored in our database with access restricted to the operators of the Service.
6. Third-Party Services
| Service | Purpose | Data Shared |
|---|---|---|
| CastReader TTS API | Convert text to speech | Extracted text of the content you play |
| CastReader Explain API | Generate AI explanations | Page text (and screenshot where applicable) of the content you Explain |
| Google Sign-In | Optional account login | Name, email, avatar (from Google, with your consent) |
| Stripe | Payment processing | Payment details (directly to Stripe); we receive subscription status |
| Plausible Analytics (websites only) | Cookie-free traffic stats | Anonymous page views, no PII |
7. Children's Privacy
CastReader does not knowingly collect personal information from children under 13 (or the applicable age in your jurisdiction). If you believe a child has provided personal information to us, contact us and we will delete it.
8. Your Rights and Choices
- Use without an account: all free features work without signing in.
- Delete your account: contact us at the email below and we will delete your account data and unlink your devices within 30 days (subscription records may be retained where required by law).
- Cancel your subscription: anytime via "Manage subscription & billing" (Stripe billing portal); access continues to the end of the paid period.
- Reset your device ID: clear the extension's storage (Manage Extensions → CastReader → Clear Data) to become a new, unlinked device.
- Opt out of analytics: block requests to
castreader.com/api/eventswith any content blocker. - Uninstall: removing the extension deletes all locally stored data.
If you are in the EEA, UK, or California and have a data request, contact us and we will respond within 30 days.
9. Data Retention
- Analytics events: up to 12 months, then deleted.
- TTS / Explain content: not retained after processing (transient logs ≤ 30 days).
- Daily usage counters: rolling daily rows; superseded days have no content value and are periodically pruned.
- Account data: until you delete your account.
- Subscription/billing records: as required for accounting, tax, and fraud prevention.
- Share pages / live sessions: until deleted by you, or automatically (live sessions expire within 24 hours; shared pages after 90 days of inactivity).
10. International Data Transfers
Our servers are located in the United States, Singapore, and Hong Kong. By using the Service you consent to processing in these locations. Data is protected by the same safeguards regardless of where it is processed.
11. Changes to This Policy
We may update this Privacy Policy from time to time. Changes are posted on this page with an updated "Last Updated" date; significant changes are also noted in the extension's store changelog.
12. Contact Us
- Email: support@castreader.com
- Website: https://castreader.com