Privacy Policy
Last updated: October 10, 2026
Vidora is built for privacy first. All video processing happens inside your browser. Your videos are never uploaded to a server. This page is the legal Privacy Policy of the Vidora Chrome extension and the getvidora.com website, operated by RGC Digital LLC.
1. What Vidora does on your device
Vidora intercepts video stream requests as they load on a webpage and makes them available for download with a single click. Detection, parsing, muxing and download all happen locally. No video content and no page content leaves your device. Video and page URLs are never sent, except inside a problem report you choose to send yourself (section 2.2). For a field-by-field audit of everything the telemetry can ever contain, read the Privacy Promise audit written in plain English.
2. What we collect (anonymous telemetry)
We collect anonymous usage telemetry to understand which platforms are most used and which features need improvement. This telemetry contains:
- Platform tag (e.g., "tiktok", "vimeo", "loom") when a download is detected
- Error category (e.g., "drm-blocked", "slow-download", "preflight-unreachable")
- Extension version and interface locale
- Browser family, one of 6 values (Chrome, Edge, Brave, Opera, Vivaldi, other), counted once per daily batch. It is read from the short list of browser brand names that Chromium-based browsers expose to every page (and, for Brave, from the presence of its own marker), never from the browser identification string, and it never includes a version number
- Anonymous session identifier (rotated regularly, not tied to your identity)
- Country-level location (a two-letter country code resolved by Cloudflare at the network edge from the request; the IP address itself is never stored). It is only ever counted in aggregate, e.g. "12 active devices in Brazil today".
Since September 6, 2026 these anonymous batches are also stored as daily aggregates in a Cloudflare D1 database (counts per day, per country, per extension version and per language) so we can compute a daily statistics summary (active devices, downloads, error rate). Error reports (section 2.1) are stored in the same database, one row per report, with exactly the fields listed in section 2.1 plus the country code. Raw rows are deleted after 90 days; daily totals, which contain no identifier at all, are kept for 400 days. The database holds no URL, no title, no IP address and no persistent identifier. The only identifiers it ever contains are the random ID of each error report, which identifies the report itself and only serves to discard a report received twice, and the ephemeral session ID of error reports, which is erased automatically about 48 hours after it is received (by the first cleanup pass after 48 hours; these passes run as reports arrive and at least once a day). Neither can be linked to a person, a device or an installation, and the session ID never appears in any email we receive.
Concrete payload shape sent to /api/usage-batch on getvidora.com:
{
"v": "1.0.18",
"lang": "fr",
"counts": {
"download_completed": 3,
"platform_vimeo": 2,
"engine_b_success": 2,
"resolution_1080p": 2,
"duration_2_10min": 1
},
"batch_id": "uuid",
"ts": 1747000000000
}
Under European law (GDPR article 5 + ePrivacy, CNIL guidance on purely statistical anonymous telemetry) and US privacy law (CCPA), this data is not personal data: there is no user identifier, no IP stored server-side, no fingerprint, and each batch is delivered standalone (we cannot link two batches to the same install). It does not require opt-in consent. We still offer one-click opt-out in Vidora > Options > Settings > Anonymous statistics.
2.1 Anonymous error reports
When a download fails for a technical reason (DRM, bad manifest, network error), the extension may send a single error report to /api/extension-error with the same anonymity guarantees. Payload contains exactly:
- a platform token or a root domain only: the site or the media server, for example
vimeo.com(never subdomains, paths or URLs; a numeric address is sent asip, a local network name such as a home NAS aslocal); - the engine that failed and the stage that failed (preflight / manifest-fetch / manifest-parse / segment-fetch / aes-key / drm-blocked / mux / write / download / schedule / fallback / resolve / subtitle-download / audio-extract / budget / ipc, the latter meaning messaging between the extension's own components);
- the error class: a short technical description such as
HTTP 403, possibly tagged with the root domain of the media server (host=example.com, andfhost=for the final server after a redirect, reduced the same way), never a URL or query string. For a crash of the extension's own interface, it also lists the names of the extension's internal components involved; - HTTP status, retry count, encryption type (none / AES-128 / SAMPLE-AES / DRM), codec;
- extension version, browser UI language, operating system family (one of 8 values: Windows, macOS, Linux, ChromeOS, Android, iOS/iPadOS, other, unknown) and Chrome major version number;
- the browser family, one of 6 values (Chrome, Edge, Brave, Opera, Vivaldi, other), read from the browser brand names exposed by Chromium-based browsers, never from the browser identification string;
- a yes/no flag telling whether the browser's JavaScript engine is JavaScriptCore (the WebKit engine of Safari and of every iPhone and iPad browser). It is deduced from the wording of a built-in error message, never from the browser identification string, and identifies an engine, not you or your device;
- the location in the extension's own code where the error was raised: the file name, line and column of one or two frames of Vidora's bundled script (for example
service-worker.js:1200:15), at most 120 characters. It describes Vidora's code only, never a web page, a URL or any browsing data; - an ephemeral session ID: random, regenerated each time the extension's background worker starts, kept in memory only on your device and never persisted there, so it can only link reports sent during the same short session. Our server keeps it for about 48 hours, only to recognize the errors of a single failure cascade, then erases it automatically (first cleanup pass after 48 hours). It is never included in any email: our daily summary only marks errors that share a session with a letter (A, B, C...) valid inside that one email;
- a random report ID, generated for each report, only used by our server to discard a report it receives twice (for example after a network timeout). It identifies the report, not you or your device;
- a timestamp (the time the error occurred on your device).
When a download succeeds but is unusually slow, one report with stage slow-success carries the same platform token, engine, version, language, session ID and timestamp, plus the duration and rounded size. Throttled to one same-signature report per hour per user and at most 30 detailed error reports per day. Same opt-out toggle.
When the popup finds no video on a page and the reason is one we can act on (the page has no media element, its player assembles the stream inside the page's own script, or it embeds a third-party player we do not recognize yet), the extension may send one diagnostic report with engine detect and stage no-videos. It carries the root domain of that page, reduced exactly as above (for example example.com, never subdomains, paths or URLs), the reason (no-media-element, mse-blob or iframe-unmatched), and the same version, language, operating system, Chrome version, browser family, engine flag, session ID, report ID and timestamp fields. At most one report per site and reason per day, and at most 5 per day. It is never sent from an incognito (private) window. It is stored like an error report and never emailed, and it is never counted in the daily totals: the root domain is deleted with the raw row after 90 days. Same opt-out toggle.
So that no failure goes unnoticed, repeats of the same error during that hour, and errors beyond the daily limit, are not sent one by one: the extension only counts them on your device and later sends the count with the same fields as above. If reports ever have to be discarded unsent, only their number is sent, in a report of the same form without any error details. A report that cannot be delivered (you are offline, or our server is temporarily unavailable) is kept in the extension's local storage on your device, without the session ID, and sent later; it is deleted as soon as it is delivered, and after 7 days at most. Turning off Anonymous statistics stops all of this and erases anything still waiting to be sent.
2.2 User-initiated feedback (only when you click Send or Report)
If you click Report this issue on a failed download or Suggest an improvement in the popup footer / Options page, the extension submits to /api/user-feedback only what you have entered or explicitly approved. This path is legally distinct: it is processed under your explicit consent (GDPR article 6.1.a). The opt-out toggle does not block it, because nothing is collected unless you actively click Send or Report.
A problem report about a failed download contains: the full address (URL) of the page where the video was, the address of the video file itself when it differs from the page, the full technical error class (at most 400 characters), the download engine, the platform token, the extension version and browser UI language, your message, and your email only if you type one. With Send in the report form, the full address of the video file is sent. Before you send, the form shows the page address in an editable field and the video address under Include technical details (unticking that box removes the video address and the technical details). The one-click Report button sends the report at once, without showing these addresses first: the page address, the video address without its query string (the part after the question mark, where sites put access tokens), the technical error class, the download engine and the platform token, with an automatic message naming the site instead of yours; the tooltip of the button lists these items. These addresses can contain access tokens set by the site; we use them only to reproduce the failure and fix it. The report is emailed to the operator inbox and also stored in our Cloudflare D1 database, so that it is not lost when an email cannot be delivered: the database copy, including both addresses and the error class, is deleted after 90 days, and the email follows section 8. The daily statistics email never contains these addresses, only the site's domain name.
2.3 Wistia and Loom URL resolution
When the extension detects a Wistia or Loom embed and you click Download, the extension fetches the public embed JSON / share page HTML. These requests only contain the public video ID, only happen on explicit user action, and never include any browsing history or user identifier.
2.4 On the website (getvidora.com)
The website is fully static. No cookies, no advertising, no fingerprinting. We measure audience with Cloudflare Web Analytics, a cookieless counter that stores nothing on your device and gives us only aggregate figures (page views, referring site, country, browser and device type, page load time); it does not identify or follow individual visitors across sites. Server access logs (IP, user agent) are kept by Cloudflare for up to 30 days for security purposes only.
3. What we never collect
Across all telemetry endpoints, the following data is never transmitted, stored or processed:
- URLs of pages you visit (except inside a problem report you send yourself, section 2.2)
- URLs of videos you download (except inside a problem report you send yourself, section 2.2)
- Titles of videos you download
- The content of videos you download (videos are saved straight to your Downloads folder by Chrome, we never see the bytes)
- Your browsing history
- Any stable user identifier (no cookie, no persistent UUID, no fingerprint; the error reports' session ID is random, kept in memory and regenerated at every restart)
- Your IP address (Cloudflare receives it for routing but our endpoint does not persist or log it)
- Any personal identifier (no account, no email collection unless you yourself type one in a feedback form)
3.1 How to opt out
Open the extension Options page, go to the Settings tab, and toggle off Anonymous statistics. This single toggle disables both /api/usage-batch and /api/extension-error. When disabled, zero telemetry requests are sent.
4. Current pricing
Vidora is currently free during the launch period. All features are unlocked, no payment required, no signup needed, no account to create. Paid plans will be announced separately when available. Until then there is no payment flow, no payment processor connected, no subscription to manage.
5. Your rights (GDPR, ePrivacy, CCPA)
The anonymous telemetry is by design impossible to link back to a specific user: there is no persistent identifier, no IP storage, no cross-batch correlation. As a result we cannot find your data, even if you asked. This is the strongest form of "right to be forgotten": the data was never about a "you" in the first place. CNIL and EDPB consider this a valid implementation of GDPR article 25 (privacy by design).
For user-initiated feedback you submitted with a reply-email: we can identify and delete it on email request, as long as you remind us roughly when you sent it (we file feedback chronologically, not by sender).
Email support@getvidora.com. We respond within 7 days.
6. Chrome permissions (transparency)
The Vidora extension requests the following Chrome permissions. Each is required for the single purpose of detecting and downloading videos. None of these permissions are used to track, profile, or transmit data about you.
| Permission | Why we need it |
|---|---|
activeTab | Inspect the current tab when you click the Vidora icon |
downloads | Save the assembled video file to your Downloads folder |
storage | Persist your settings and local download history |
unlimitedStorage | Since version 1.0.75: assemble large videos on your own disk, in the browser's private storage, before saving them (some browsers, such as Brave, limit this space to a few gigabytes otherwise). Nothing leaves your computer, and the temporary files are deleted after each download |
notifications | Notify you when a download starts or completes (toggleable) |
webRequest | Observe (never modify) network traffic to detect HLS / DASH manifests |
webNavigation | Reset per-tab detection state on page navigation |
declarativeNetRequest | Set Referer header on segment requests for protected CDNs (Bunny.net, Vimeo, Wistia) |
offscreen | Run segment stitching and MP4 muxing in an offscreen document (Manifest V3 requirement) |
scripting | Inject detection logic when you trigger a scan |
tabs | Read the active tab title for download filename generation |
host_permissions: <all_urls> | The extension's purpose is to detect videos on any webpage. Restricting to a domain allowlist would defeat the use case |
7. No third-party data sharing
Vidora does not share any data with third parties. The anonymous telemetry endpoints run on our own infrastructure (Cloudflare Workers / Pages). Specifically:
- Cloudflare Pages: hosts getvidora.com and the telemetry endpoints. Standard edge logs (IP, user agent) are kept by Cloudflare for at most 30 days for security purposes and are not joined to telemetry payloads
- Resend: transactional email provider that delivers the aggregated digests from the telemetry endpoints to the operator inbox. Resend processes the body of the email (which contains only the anonymous fields described in section 2, plus the content of a report you choose to send under section 2.2)
- Google Fonts: Inter font on the website (fonts.googleapis.com)
We do not load any other third-party scripts.
8. Data retention
- Anonymous telemetry: usage batches and error reports are stored in our Cloudflare D1 database (section 2): raw rows 90 days, daily totals 400 days, the ephemeral session ID of error reports about 48 hours (never included in the emails). Some of them are also emailed to the operator inbox by Resend; we keep those emails for as long as they are useful for improving the product (typically rolling 90 days in the inbox)
- User-initiated feedback: kept in the operator inbox until we have acted on it, then archived for up to 2 years to detect patterns across users. The copy stored in our Cloudflare D1 database (including the page and video addresses and the error class of a problem report) is deleted after 90 days
9. Children
Vidora is not intended for children under 13. We do not knowingly collect data from minors.
10. Changes to this policy
We will update the "Last updated" date at the top whenever we change this policy. Material changes will be communicated via the extension's update notes.
11. Contact
For privacy questions or data deletion requests: support@getvidora.com. Postal: RGC Digital LLC, 8206 Louisiana Boulevard NE, Albuquerque, NM 87113, USA.