tscaps

Privacy Policy

Last updated: 2026-09-01

tscaps is a client-side video editor that adds burned captions to your videos. This policy explains what data we collect, why, and how you can exercise your rights over it. We aim for the shortest list of data that lets the product work and we avoid storing anything we don't need.

Data we collect

  • Account. When you sign up we store your email address and, if you sign in with Google, the name and profile image Google sends us. We do not store your Google password.
  • Project metadata. When you save a project we store its title, your caption styling choices, and the transcript text on our servers so you can resume later. Your video file never leaves your browser — all editing and export happen locally on your device.
  • Transcription audio. When you use cloud transcription, the audio extracted from your video is sent to a third-party transcription provider (Deepgram or ElevenLabs, depending on current configuration) to produce a transcript. The audio is not retained by us. The provider's retention policy applies to its own copy and is documented in their privacy terms.
  • Transcript text for smart caption breaks. On the cloud version, after transcription we send the transcribed words to a scoring model that estimates good places to break captions, so line breaks feel natural instead of landing mid-thought. Only the text of the words is sent. No audio, no video, no account information. The words are processed for the duration of the request and are not retained.
  • Model downloads. The in-browser versions run speech and person-detection models on your device. Your browser downloads those model files the first time it needs them, directly from the companies that publish them: Hugging Face for the speech model, Google for the person-detection models. Those companies see your IP address and which file you asked for, the same as any other file your browser downloads from the web. They receive no video, no audio, and no account information. The files are then stored in your browser so later videos do not download them again.
  • Billing. Payment details (card number, billing address) are handled by Polar, our billing provider. We never see or store them. We do store your subscription status and the email used for billing receipts.
  • Session cookies. A session cookie keeps you signed in. It is strictly necessary for the product to function. We do not use third-party tracking cookies for advertising.
  • Anonymous product analytics. Across every surface — the landing page, the cloud and local editor — we capture anonymous events (page views, feature usage, timings, errors) with non-identifying technical context like device type, browser, viewport size, and release version. We use them to understand which parts of the product are useful, where people get stuck, and when something is failing. The events are sent to PostHog (described below) and never include your video, your audio, your transcript text, or any account information. The adapter runs entirely in memory — no cookies, no localStorage entries, no identifier that crosses sessions. A browser sending the Do-Not-Track signal has its analytics suppressed. If you want a build with no telemetry at all, the open-source self-hosted version ships with analytics disabled.
  • Error reports. When the app or our server hits an unexpected error, we send a report with the error message, a stack trace, and the technical context of the failure (route, device type, release version) to Sentry. These reports help us notice and fix bugs without waiting for you to tell us. They do not include your video, your transcript text, or your password. The local version (/local) sends the same reports — a crash there is still a crash we need to see. If you want a build that reports nothing, the open-source self-hosted version ships with error reporting disabled.
  • How analytics and error reports travel. Both are sent to a path on tscaps.io, which forwards them to the providers named below. We do this because tracker blockers drop requests addressed to those providers directly, and we would rather have honest numbers than a sample skewed towards people who do not block. It changes the route, not the contents: the same providers receive the same data described above, and a browser sending the Do-Not-Track signal still has its analytics suppressed.

Anonymous cloud trial signals

When you use the cloud version of tscaps without an account, we briefly store two technical signals so we can offer a free trial without burning our budget on automated abuse: your IP address (which may be stored in a partial or hashed form) and a non-personally-identifying signature of your browser computed locally on your device. They are used only to count your free trial and to throttle attempts that look automated, never shared with third parties, never used for advertising, and never linked to a marketing profile.

These signals are deleted within 30 days. If you create an account, your account replaces this anonymous tracking.

Where your data is processed

We use the following subprocessors to operate tscaps. Each one only receives the slice of data needed for its role:

  • Hetzner (Germany) — application hosting.
  • Neon (EU) — database (accounts, project metadata, subscription status).
  • Cloudflare (global) — DNS, CDN, and TLS termination for our domain.
  • Cloudflare R2 — object storage for cloud project videos (only when you save or transcribe a project in the cloud version).
  • Cloudflare Turnstile — bot and abuse prevention on sign-up, sign-in, and password-reset pages.
  • Polar — billing and payment processing (acts as Merchant of Record).
  • Resend — transactional email (verification, billing receipts).
  • Deepgram and ElevenLabs — speech-to-text for cloud transcription (only if you opt into the cloud path).
  • Modal (United States) — hosts the model that scores where cloud captions should break. Receives only the transcribed words for the duration of the request; no audio, no video, no account information.
  • Google — OAuth sign-in (only if you choose Google as your sign-in method), and hosting of the person-detection models your browser downloads when you use the effect that places captions behind a person. Receives your IP address and which file was requested; nothing else.
  • Hugging Face — hosting of the speech model your browser downloads to transcribe on your device. Receives your IP address and which file was requested; nothing else. No audio is sent there: the model comes to your device, not the other way around.
  • PostHog (EU region, Frankfurt) — anonymous product analytics across every surface (marketing site, cloud editor, local editor), configured to discard client IP data. Receives only the anonymous events described above.
  • Sentry — error tracking for the cloud and local versions. Receives stack traces and the technical context attached to the error. Configured with personally-identifying defaults turned off, no session replay, no tracing.

How long we keep your data

We keep your account data for as long as the account is active. When you delete your account, we delete your projects and personal data within 30 days. Billing records may be retained longer to comply with accounting and tax obligations. Anonymous cloud trial signals (IP and fingerprint, described above) are kept for at most 30 days. Backups are rotated within 30 days.

Your rights

You can request access to the data we hold about you, correction of inaccuracies, deletion (the "right to be forgotten"), and a portable copy in a machine-readable format. Email us at the address below and we will respond within 30 days.

Contact

Questions or requests: hello@tscaps.io.

Changes

We may update this policy as the product evolves. We will update the "Last updated" date above and, for material changes, notify you by email or in the app before the changes take effect.

This document is a plain-language summary of how we handle your data. It is reviewed periodically and refined as the product changes.