Privacy Policy
Operant is built privacy by design: neither the extension nor the native messaging host collects, stores or transmits your history, credentials, media or browsing data to any external server. Every computation happens strictly on your own device. This policy describes exhaustively what the software touches, where data is stored and when it is deleted.
1. Scope
This policy covers the two components of the project: the browser extension (Manifest V3) and the native messaging host written in Python. Operant is distributed as open-source software without a hosted service — there is no account system, no backend and no server infrastructure operated by the project. Questions about this policy should be raised through the project's official repository.
2. No telemetry
Operant includes no third-party analytics of any kind (no Google Analytics, Mixpanel, Sentry or equivalents). There are no remote databases, no crash reporting endpoints and no collection servers. Every action happens between your browser and the local Python process registered on your operating system.
3. Data processed by the extension
The content script discovers media resources in the active tab (img, video, CSS backgrounds, lazy-loaded assets) and the network observer records the URLs of streaming manifests (HLS .m3u8, DASH .mpd). This metadata — URLs, dimensions, media types — is kept only in the tab's volatile memory and in chrome.storage.session to keep the side panel in sync. It is never written to disk, never leaves the browser, and is destroyed when the tab or the browser closes.
4. Network observation and header rules
To detect streaming manifests the extension inspects network headers through webRequest. To download resources protected against hotlinking, ephemeral declarativeNetRequest rules inject the page's real Referer header into the outgoing request. These rules exist only for the duration of the transfer and are removed immediately afterwards; they are never persisted.
5. The native host
The operant_host.py process communicates with the browser exclusively over stdio and only accepts messages from the extension ID registered on your system. It receives instructions solely to:
- Download and install official
ffmpegandyt-dlpreleases into its own directory. - Transcode, resize or extract audio from local files you explicitly choose.
- Save requested downloads to a subfolder of your user downloads directory.
6. Browser permissions
The manifest.json declares exactly the permissions required for the features above:
sidePanel— hosts the interface in the browser's persistent side panel.activeTab— temporary access to the active tab to analyze content when you open the panel.storage— local persistence of view preferences and filters.downloads— saving files and ZIP archives to your machine's downloads folder.webRequest/declarativeNetRequest— passive identification of media streams and ephemeral header rules.nativeMessaging— the communication bridge with the local Python process.
None of these permissions grant access to data beyond the tabs where you use the extension.
7. Third-party binary downloads
When you request installation or update of yt-dlp or ffmpeg, the native host connects directly to the official release repositories (github.com/yt-dlp/yt-dlp, github.com/BtbN/FFmpeg-Builds or gyan.dev) over encrypted HTTPS connections. Binaries are stored in your local user space without elevating privileges and without modifying global operating system settings. No other network requests are made.
8. Data locations and retention
All persistent state lives on your machine, in locations you can inspect and delete:
%LOCALAPPDATA%\Operant\(Windows) or~/Operant/— managed binaries and host state.~/Downloads/Operant/— files you choose to download.chrome.storage.session— volatile panel state, cleared with the browsing session.
Deleting these folders and unregistering the host removes every trace of Operant from your system.
9. Legal basis
Operant does not transmit personal data to the distributing party or to any third party, so there is no processing for which the project acts as a data controller. All processing of media and page data happens locally, on your device, under your direct control and for purposes you decide.
10. Your rights
Under regulations such as the GDPR you may request access, rectification or erasure of your personal data. Because no data ever reaches us, such requests cannot be executed against our side — there is nothing held on your behalf. You keep full control at all times: uninstalling the extension and deleting the local folders listed above erases every piece of data instantly.
11. Children
Operant is technical software not directed at children. Regardless of age, no personal data is collected, so no information about minors is ever processed or stored outside the user's own device.
12. Security
The native host is written with the Python standard library only, its source is fully auditable, and it accepts messages exclusively from the registered extension ID over stdio — no other program or web page can reach it. Tool downloads happen over HTTPS from official repositories, and concatenated fMP4 streams are validated before anything is written to disk.
13. International transfers
None. No data leaves your device, so no cross-border transfers of personal data take place.
14. Changes to this policy
Material changes will be reflected in the update date shown at the top of this page. Substantial functional changes will also be announced through the project's release notes.