Privacy Policy
Last updated: October 21, 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). Local download history. To list your downloads in the side panel, find them again and mark a video you already downloaded, Vidora keeps on your device a history of your last 100 downloads: for each one, its title, the address of the video and the address of the page it came from, its size and date. This history stays in the extension's local storage: it is never sent, it is not recorded at all for a download started from an incognito (private) window, and you can erase it at any time, one line with Remove in the side panel, or all of it in Vidora > Options > History. Uninstalling the extension erases it too. 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 measure the reliability of Vidora and how its features are used: which platforms and features are used, which fail, and how the review request performs (shown, clicked, declined). It is never used for advertising or profiling. This telemetry contains:
- Platform tag (e.g., "tiktok", "vimeo", "loom") when a download is detected; for a site outside this fixed list, only a broad category decided on your device from the site's domain name (one of
course,adult,news,social,misc, sent aspf_other_<category>_okor_ko), never the site itself - 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".
- Device state indicators: a few values from short fixed lists that describe where this installation currently stands, sent with each daily batch as a count of 1 (
g_<name>_<value>). Today there is one: how far this installation is in the review request (g_rv_few,g_rv_ready,g_rv_seen1,g_rv_seen2,g_rv_seen3p,g_rv_pause,g_rv_fb,g_rv_clicked,g_rv_done: not enough downloads yet, ready, shown once, twice or three times or more, paused, problem reported, rating link clicked, review declared as posted). They describe a state, never an action, a page or a time. - If you tell Vidora that you have already posted a review (the "Yes, done" or "Already rated?" buttons, or the Options page), a single anonymous count that you did so and from which screen (
review_done_declared_<screen>), so that Vidora stops asking. Nothing about your review is read or sent: Vidora cannot see the store page. - Which star you clicked in the review request, if you click one (
review_star_1toreview_star_5, counted like any other usage event). Every star opens the same public store page, nothing is filtered on the star you chose; we only read the distribution of stars as a satisfaction measure. - Install age, in coarse buckets only (0 days, 1-3, 4-7, 8-30, 31 or more days since installation), never the installation date
One daily batch, even on days you do not use Vidora. Usage counts are sent together in a single batch, at most one ordinary batch per calendar day (UTC); one extra batch may be sent right after installation or after an update. Since October 19, 2026 this batch is sent even when nothing happened that day, so that we can count how many installations are still in use (the same idea as the update ping of Chrome or Brave), but only once the one-time notice described below has been shown on your device: until then, a batch is only sent after you have used Vidora (opened its popup or side panel, clicked its download button, started a download), as before. Besides the counts, it carries a few yes/no indicators computed on your device, each sent as a count of 1:
- that this is the first batch of the day (
hb_alive), and whether it is the first batch of this calendar week (ISO week, UTC) or of this month (hb_new_wk,hb_new_mo); - whether you used Vidora (for example opened the popup or side panel, clicked a download button, used the right-click menu or the keyboard shortcut, started a download) on a day not reported yet, and whether this is the first such batch of the week or month (
hb_act,hb_act_wk,hb_act_mo), and, once, whether you used it during the previous week or month after the last batch of that period (hb_act_pwk,hb_act_pmo); - the type of batch: the ordinary daily batch, the one sent right after installation, or the one sent right after an update (
hb_kind_daily,hb_kind_install,hb_kind_update); - the number of counters carried over to the next batch when a batch would be too large (
batch_trimmed), and, at most once a week, the outcome of the extension's own update check (upd_chk_no_update,upd_chk_update_available,upd_chk_throttled,upd_chk_error).
These indicators only serve as the denominators of our reliability rates (failures per installation in use, adoption of a corrective version). Since version 1.0.84 (October 20, 2026), the extension no longer sends how many days you used Vidora over the last 7 or 28 days, nor the number of weeks since installation (formerly hb_ad7_*, hb_ad28_* and hb_cw_*): they measured how much and how long Vidora is used, not whether downloads work, so we removed them.
To compute these indicators, the extension keeps on your device only the days (dates, no times) on which you used it that it has not reported yet, for at most 40 days, and the last day, week and month it reported; a day is erased once it has been reported, and none of it is sent as such. The batch carries no identifier of your installation. Its batch ID is random and drawn anew for every new batch; it is reused only when the very same batch is sent again because its delivery was not confirmed, so that our server can recognize and discard a copy it already received. We do not link batches to one another, and no identifier that would allow it is sent. If a batch cannot be delivered (you are offline, or our server is unavailable), it stays on your device and is sent again unchanged later; after 3 attempts or 7 days, its counts go with the next batch instead.
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. Each stored batch keeps the day it was received, never the time of day; for a batch sent on a day without any use, only the totals listed above that feed our counts of installations and of active users (hb_alive, hb_new_*, hb_act*, hb_kind_install, hb_kind_update) and the browser family are kept. 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 and the random ID of each usage batch, which identify the report or the batch itself and only serve to discard one received twice (batch IDs are deleted after 8 days), 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.84",
"lang": "fr",
"install_age_bucket": "8-30",
"counts": {
"download_completed": 3,
"platform_vimeo": 2,
"pf_vimeo_ok": 2,
"engine_b_success": 2,
"resolution_1080p": 2,
"duration_2_10min": 1,
"browser_chrome": 1,
"hb_alive": 1,
"hb_act": 1,
"hb_kind_daily": 1
},
"batch_id": "random UUID, new for every batch"
}
The batch carries no timestamp, and our server stores only the day it was received, never the time. On a day without any use, counts usually holds only the browser family, the state indicators and the hb_ indicators above.
See exactly what was sent. Since version 1.0.84, Vidora > Options > Settings > Anonymous statistics > What Vidora sends shows the last usage batch your browser actually sent, exactly as it was sent (the same JSON as above), with the day it was sent, right next to the opt-out switch. To show it, the extension keeps on your device a copy of that last batch only (the batch body and the day, never the time), replaced by each new batch and never sent again. Error reports (section 2.1) are not part of this copy.
We tell you when this changes. When what the extension sends changes (for example the daily batch sent even without use, introduced on October 19, 2026), Vidora shows a one-time notice at the top of its popup and side panel, once per change, to existing and new users alike, with two buttons: See what is sent (opens the screen above) and Turn off (stops all telemetry at once). The notice is not shown if you have already turned off Anonymous statistics. Because the notice appears in the popup or side panel, no batch is ever sent on a day without use before you have seen it. The welcome page opened at installation also states that anonymous counters are sent and how to turn them off.
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 batches carry no identifier of the installation (we do not link batches to one another). 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. Since version 1.0.85 it may also carry two short tags taken from fixed lists:trail=, the last steps of the download inside the extension (for exampleclick>hls>m3u8>seg), andipg=, the kind of web page received instead of the video (for example a 404 page, a maintenance page or a cookie banner) with a rough size, never its content. 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 of when the error occurred on your device, rounded down to the hour (UTC) since version 1.0.84 (October 20, 2026): never the minute or the second. Our server only keeps its day.
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, including the daily batch: nothing is counted any more, and the counts, state indicators and daily batch state still waiting on your device are erased at once. The extension then only keeps, locally and never sent, the time of your last download success or failure, so that it does not ask for a review right after a failure, and the copy of the last batch sent before you turned it off (shown under What Vidora sends). The change notice of the popup and side panel turns it off in one click (Turn off); the welcome page links to the What Vidora sends section of the Settings, where this switch sits.
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 (title, video address and page address of your last 100 downloads, never sent, never recorded from an incognito window, erasable from the side panel or Options > History; see section 1) |
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.
To get a video you want, the extension talks directly to the platform that hosts it, as your browser does when it plays that video. Three of these requests carry information by design: for a Dailymotion video embedded in another site, the extension sends the address (URL) of that page to api.dailymotion.com in the embedder parameter, as the Dailymotion player itself does; for a Vimeo video embedded in another site, requests to Vimeo carry the origin of that site (for example https://example.com/) in the Referer header, as the embedded player does; requests to Twitch carry the public Client-ID of the Twitch website, the same for every visitor and never an identifier of yours. These requests go only to the platform of the video, never to us, and that platform's own privacy policy applies to them.
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), the random ID of each usage batch 8 days. 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. Any change to what the extension sends is also announced inside the extension itself, by a one-time notice in its popup and side panel (section 2), before you need to look for it.
11. Contact
For privacy questions or data deletion requests: support@getvidora.com. Postal: RGC Digital LLC, 8206 Louisiana Boulevard NE, Albuquerque, NM 87113, USA.