Privacy Policy

Last updated: August 10, 2026

This policy explains what personal data Transcodely collects, why we collect it, how long we keep it, and the rights you have over it. We have tried to make it precise rather than vague: the retention periods, vendors, and mechanisms described here reflect how the platform is actually built.

Contents

1. Who We Are

Transcodely is operated by Dimitar Todorov, doing business as Transcodely (“Transcodely”, “we”, “us”). For personal data described in this policy for which we decide the purposes and means of processing — such as your account data — we are the data controller. You can reach us about anything in this policy at admin@transcodely.com.

2. Scope & Our Roles

We process personal data in two distinct roles:

  • As a controller — for data about our customers and site visitors: account details, billing records, usage and request logs, support correspondence, and website analytics. This policy governs that processing.
  • As a processor on behalf of our customers — for the content customers upload (which may show or record identifiable people) and for playback telemetry generated when viewers watch customer videos delivered by us. For that data, our customer is the controller and our Data Processing Agreement governs the processing. Sections 4 and 5 below describe what happens in practice.

3. Data We Collect

3.1 Account data

When you sign up, authentication is handled by our identity provider, WorkOS. We receive and store your email address, name, and — if your sign-in provider supplies one — a profile picture URL. We also store your organization membership, account status, and settings.

3.2 Usage and job metadata

We store the metadata of your API activity: job records (job configuration, source locations, output specifications, status, timings, and computed cost), video records, presets, webhook endpoint configuration, and API key metadata. Job records power your dashboard, billing, and support, and are retained for the life of your account.

3.3 API request logs

For security, debugging, and abuse prevention, we log API requests, including IP address, user agent, request and response bodies (truncated), the API key used, status code, and timing. These request-level logs are automatically deleted after 7 days.

3.4 Billing data

A usage ledger and invoices (line items, amounts, billing period) are stored on our systems. Payment itself is handled by Polar, our merchant of record: Polar receives your billing email, organization name, and usage-derived charge amounts, and collects your payment details directly — we never see or store card numbers. Polar is also responsible for calculating and remitting VAT/sales tax.

3.5 Website, dashboard & communications

  • Cookies — the dashboard uses strictly necessary, first-party authentication cookies only. The full list, with lifetimes and purposes, is in the Cookie Policy. We use no advertising or cross-site tracking cookies.
  • Analytics — we use Vercel Analytics and Speed Insights for aggregate, cookieless website analytics. They do not set cookies or track you across sites.
  • Error monitoring — we use Sentry to capture application errors. Server-side events are scrubbed before sending: query strings, cookies, and request bodies are removed, and known-sensitive values are redacted. In the browser, if (and only if) an error occurs, Sentry may capture a session replay of your dashboard interaction to help us reproduce the bug; sensitive UI elements such as secret reveals are masked, and webhook signing secrets are redacted from all events before transmission.
  • Contact form — submissions on our contact page (name, email, message) are delivered to our inbox via Web3Forms, a form-processing service.
  • Support email — if you email us, we keep the correspondence for as long as needed to handle your request and for a reasonable period afterwards.

4. Your Video Content

Your source and output video files are processed on our infrastructure. By default we do not view, access, or analyze the substance of your content — files are handled mechanically by the transcoding pipeline.

4.1 Storage lifecycle

  • Content in Transcodely-managed storage remains stored until you delete it (or your account is closed). Deleting a video removes its source and output files from storage and purges CDN caches on a best-effort basis.
  • For hosted videos, you may opt in to automatic deletion of the original source file a configurable number of days after upload; a warning webhook is sent before deletion runs.
  • Outputs of failed or canceled jobs are cleaned up automatically.
  • Content read from or written to storage you connect yourself (your own S3/GCS/R2/HTTP origins) stays under your control on your own provider.

4.2 Opt-in AI features

Two optional features process the substance of your content, and only for the specific jobs where you enable them:

  • AI captions — audio is transcribed by a speech-to-text model (Whisper) running on Transcodely’s own worker fleet, which operates in EU data centers by default. The audio is not sent to any third-party AI service.
  • Auto-chapters — when you additionally enable chapter generation, the resulting caption transcript text — never the audio or video itself, and no account metadata — is sent to Anthropic to generate chapter titles and timestamps. See Subprocessors.

When these features are not enabled, your audio and video content is not transcribed or analyzed.

5. If You Watch a Video Delivered by Transcodely

This section is for viewers — people who watch a video that one of our customers hosts with us, for example through an embedded player on the customer’s website. For this data we act as a processor for the customer who published the video.

  • No cookies. The player and embed set no cookies.
  • Player preferences (volume, playback speed, caption choice, quality) are saved in your browser’s local storage only, never sent to a server, and never include what you watched. If your browser blocks storage, the player simply works without saving preferences.
  • Playback telemetry. During playback the player sends periodic beacons (a randomly generated per-session identifier, the video ID, and playback position) to our API so the customer can see aggregate viewing statistics. Raw events are deleted after 30 days; only daily aggregate statistics are kept after that.
  • Delivery logs. Video is delivered through our CDN provider (BunnyCDN), which processes your IP address and user agent as part of serving the request, as any web server does.

6. How We Use Data & Legal Bases

Where the GDPR applies, we rely on the following legal bases:

PurposeDataLegal basis
Providing the Service (accounts, jobs, hosting, delivery)Account data, job metadata, contentPerformance of a contract
Billing and invoicingUsage ledger, invoices, billing emailPerformance of a contract; legal obligation
Security, debugging, abuse preventionRequest logs (IP, user agent), error eventsLegitimate interests (keeping the Service secure and working)
Website analyticsAggregate, cookieless page metricsLegitimate interests (understanding site usage)
Support and communicationsContact details, correspondencePerformance of a contract; legitimate interests
Opt-in AI features (captions, chapters)Audio (on our infra), transcript textPerformance of a contract (you enable them per job)
Compliance with lawAs requiredLegal obligation

We do not sell or rent personal data, we do not share it with third parties for their marketing, and we do not use your content or personal data to train AI models.

7. Sharing & Subprocessors

We share personal data only with: (a) the vendors (“subprocessors”) we use to run the Service, each bound by a data processing agreement and receiving only what its function requires; (b) authorities, where required by law and after reviewing the request’s validity; and (c) a successor entity if the business is incorporated, merged, or acquired — in which case this policy continues to apply and we will notify you.

The complete, current list of subprocessors — who they are, what each does, what data each receives, and where they are located — is maintained at transcodely.com/subprocessors.

8. Where Data Is Processed & International Transfers

The core platform runs in the European Union: the API control plane on Google Cloud in Belgium (europe-west1), the database in Frankfurt, Germany, and the transcoding fleet and managed video storage in Hetzner data centers in Germany and Finland. Video delivery uses a global CDN so that playback is fast wherever your viewers are. In an EU-wide capacity shortage, transcoding may exceptionally overflow to our compute provider’s US locations; this is disabled by default. Error monitoring is also processed in the EU: our Sentry organization ingests and stores error events in Sentry’s EU region, hosted in Germany.

Some vendors (for example WorkOS, Vercel, Polar, Anthropic, Web3Forms) are based in the United States and process limited categories of data there, as described on the Subprocessors page. Sentry is a US company as well, but the data it processes for us stays in its EU region in Germany, as described above. Where personal data leaves the EEA, we rely on adequacy decisions (including the EU–US Data Privacy Framework where the vendor is certified) and/or the European Commission’s Standard Contractual Clauses.

9. Data Retention

We keep personal data only as long as needed for the purpose it was collected for. Concretely:

DataRetention
Account data (email, name, settings)Life of the account; deleted within 30 days of a verified account-closure request
Video content in managed storageUntil you delete it (or per your configured automatic source deletion); deleted on account closure
Job & video metadataLife of the account
API request logs (IP, user agent, bodies)7 days
Webhook delivery logs90 days
Playback telemetry (raw events)30 days; daily aggregates kept thereafter
Idempotency replay records24 hours
Billing ledger & invoicesAs long as required by tax and accounting law (typically up to 10 years)
Error events (Sentry)Per vendor retention, typically 90 days
Staff/administrative action audit logRetained indefinitely as an immutable record of administrative actions on customer accounts (integrity and accountability); contains staff and account identifiers, not content

When you close your account, we delete your personal data and content within 30 days, except data we must keep longer to meet legal obligations (such as invoices) or to establish, exercise, or defend legal claims — which we then isolate and delete when that need expires.

10. Security

  • All connections use TLS; database connections require TLS.
  • API keys are never stored in plaintext — only a SHA-256 hash is kept, verified in constant time; the full key is shown once, at creation.
  • Credentials you store with us (storage origin credentials, DRM keys, license-server tokens) are encrypted at rest with AES-256-GCM using dedicated encryption keys.
  • Webhook payloads are signed with HMAC-SHA-256 so your systems can verify their authenticity.
  • Administrative actions on customer accounts are recorded in an append-only audit log that cannot be deleted, even by staff.
  • Error reports are scrubbed of cookies, query strings, request bodies, and known-sensitive values before leaving our systems.

No system is perfectly secure. If we learn of a personal data breach affecting you, we will notify you and the competent authorities as required by law.

11. Your Rights

Depending on where you live (and in the EEA/UK under the GDPR), you have the right to access, correct, delete, and receive a copy of your personal data, to object to or restrict certain processing, and to withdraw consent where processing is based on consent. To exercise any of these rights, email admin@transcodely.com; we respond within one month. You also have the right to lodge a complaint with your local supervisory authority.

If your personal data appears in a customer’s video content or viewer telemetry, the customer is the controller — contact them first; we will assist them in fulfilling your request as their processor.

12. Children

The Service is for business and developer use and requires users to be at least 18. We do not knowingly collect personal data from children. If you believe a child has provided us personal data, contact us and we will delete it.

13. Changes to This Policy

We will update this policy as the Service evolves. For material changes — new data categories, new purposes, or new subprocessors handling your content — we will give notice by email or dashboard notice before the change takes effect. The “Last updated” date above always reflects the current version.

14. Contact

For privacy questions, data requests, deletion requests, and anything else in this policy: admin@transcodely.com.