Privacy policy for FeedTamer: Control What YouTube Shows You
FeedTamer: Control What YouTube Shows You by CQTecnologia
Privacy policy for FeedTamer: Control What YouTube Shows You
Privacy Policy
Last updated: October 27, 2026
- Feed filtering stays in the browser
When FeedTamer hides or keeps items on YouTube, matching and page changes happen inside your browser.
FeedTamer does not collect, record, transmit, or sell:
Your video watch history or playback activity
Your search queries
Your channel subscriptions, playlists, or likes
Your browsing history or IP addresses as a tracking product
There is no usage telemetry and no analytics script in the extension.
- Browser Storage
Your filter settings, custom topic rules, channel filters, and preferences are stored in the browser's extension storage (storage API), in storage.sync and storage.local. If you are signed in to your browser profile with sync enabled, your browser vendor may synchronize these configuration settings across your own devices according to your browser account settings.
When you choose Start free trial, the free trial record is written to storage.local and storage.sync. It holds the trial start time ( installedAt), the trial length ( durationMs), the trial end time ( expiresAt), where the record came from ( source), a format version ( schemaVersion) and, while the offer is still pending, the time of the last attempt to reach the server ( attemptedAt). The trial start time is also written on its own under ft:installedAt. Your browser may sync these records to your other signed-in devices. If you choose Start free trial on one of them, it uses the synced trial record instead of requesting a new trial.
When you activate a license key, the key, its plan tier and the activation time are also written to storage.sync. Removing the key deletes them from storage.sync and writes the removal time there. The signed plan token and the random installation ID stay in storage.local on this device.
The Settings page keeps the open or closed state of its plan boxes in the page's localStorage.
The extension also keeps these records in storage.local on this device: the language you chose in Settings ( ft:locale), the time you chose Start free trial ( ft:trialConsent), the time of the latest license check ( ft:licenseCheckedAt), the day the subscribe offer was last shown ( ft:subscribeOfferDay), whether you closed the trial welcome message ( ft:trialWelcomeDismissed), a count of the videos hidden today with their video IDs and a count of hides per rule ( ft:hideTally), and a record of the restart of open YouTube tabs after an update ( ft:successorBoot). The extension sends none of them to the FeedTamer server.
- Payment Processing and Purchases
Orders and payment processing for FeedTamer Pro are handled by Paddle, our Merchant of Record. The Paddle company that sells to you depends on where you are: Paddle.com Inc. in the United States, Paddle.com (Canada) Ltd. in Canada, and Paddle.com Market Limited elsewhere. When you purchase a license:
Paddle collects and processes payment card details, billing address, and transaction metadata.
When you activate a plan, the FeedTamer server receives the license key you enter (your Paddle transaction or subscription ID) and a random installation ID, and reads that transaction or subscription from Paddle to confirm the plan and its billing period. A settings backup you save is stored under a shortened hash of that key.
To confirm the plan, the server sends Paddle a GET request to api.paddle.com for that transaction or subscription, and for the subscription of a transaction when it has one, using FeedTamer's Paddle API key. The request carries that ID and no installation ID.
The FeedTamer server has no route that receives Paddle webhook notifications.
The home page of thefeedtamer.com loads the checkout script of Paddle from cdn.paddle.com when the page opens, before you click a plan button, so Paddle receives that request from your browser.
The Paddle script integrates Paddle Retain ( ProfitWell), a Paddle service, so it may load Retain scripts on the page. The page passes no customer ID or email to it.
When you click a plan button, the page gives Paddle the price ID of that plan, the product name, the plan name and the page language, and the checkout of Paddle opens over the page.
After a purchase completes, the page saves the transaction ID and the plan in the tab's sessionStorage to show your order reference.
We never see, collect, or store your credit card or financial account numbers.
- Support Communications
If you contact customer support at support@thefeedtamer.com, we receive your email address and any technical details you choose to share. This communication data is used exclusively to assist you and resolve your technical inquiries.
- Single-Purpose Compliance
FeedTamer requests only the minimum permissions required to perform its single purpose: filtering video feeds and recommendations on YouTube. It does not inspect other websites or access web traffic outside YouTube domains.
- Network calls to FeedTamer
FeedTamer contacts thefeedtamer.com in these cases:
A trial-grant request only after you choose Start free trial in Settings: the extension sends POST to /api/trial-grant, with browser credentials enabled. The server sets or reuses an ft_trial cookie containing a random token and stores the associated trial start and expiry. The request has no installation ID or license key in its body. If the server has not answered with a trial grant, the extension repeats this request at most once a minute until it does. Public offer information at /api/trial-policy is separate from this grant; the website displays the offer through server-rendered pages
License verification: when you activate a license key in Settings, the extension sends POST to /api/license/verify with a JSON body that holds the license key you entered, such as your Paddle transaction or subscription ID, and the random installation ID. The extension sends the same request on its own when this device has no plan token yet, for example when a key arrived through browser sync, or when the saved plan ends within 3 days or has ended, and at most once an hour. It checks whether that is due when the extension's background service worker starts, every 6 hours, and when you open Settings with a saved key and no active plan. The server answers with the plan tier, the plan end time if it has one and a signed token, which the extension keeps in storage.local.
Settings backup: when you press Save a copy in Settings while any paid plan is active, the extension sends PUT to /api/settings/backup with your settings as a JSON body. When you press Restore copy while a paid plan is active or within 7 days after it ends, the extension sends GET to the same address. Each of these requests carries the signed plan token in an Authorization header and the random installation ID in an X-Install-Id header. The server compares that installation ID with the one inside the token and does not store it. The extension has no request that deletes a backup. Section 8 says how long a backup is kept
Update check in builds installed outside a store: the browser requests /updates.xml (Chrome) or /updates-firefox.json (Firefox) from thefeedtamer.com to look for a new version. Where the browser supports it, the extension also asks the browser to run that check when the browser starts and at 3-hour intervals. Builds from a store carry no such address
Those requests do not include watch history, video titles on the page, or search queries. Without a paid plan, the extension still stores rules on the device; filtering then follows the trial and license state described in the terms.
- Website statistics, cookies and storage
The thefeedtamer.com website, not the extension, uses Cloudflare Web Analytics to count page visits without cookies and without identifying you. Its script loads from static.cloudflareinsights.com on the pages of the website.
When you click an install button on the website, the page sends the page path, the button and the source campaign to /api/e. When you click a plan button that opens the checkout, the page sends the page path, the plan, the page language and whether it was one of our own test clicks to /api/e. Each of these requests carries no identifier in its body, and the server does not store your IP address with the event. The server writes each event to Cloudflare Analytics Engine, which adds the time of the event and keeps the record for three months. None of this includes what you watch on YouTube.
The server of the website reads the country that Cloudflare derives from your connection and sets a cookie named ft_country with its two-letter code. The cookie lasts 1 day. The server also adds the country code to an X-Geo-Country response header. The script of the website reads the cookie to choose Portuguese as the page language when the code is BR and no saved or browser language applies. The website saves your language choice in localStorage under feedtamer.locale.
The film on the home page is a link to YouTube with a poster image served by thefeedtamer.com. When you click it, the page adds a player from youtube-nocookie.com. Nothing from YouTube loads before that click.
Cloudflare Workers Logs is turned on for the website for 1% of requests, with invocation logs saved and query strings redacted.
- What the FeedTamer server keeps
The FeedTamer server runs as a Cloudflare Worker.
The server keeps the trial start, the trial length and the trial end time in Cloudflare KV under a random token, which is also the value of the ft_trial cookie, and deletes them 400 days after the trial ends.
The ft_trial cookie is HttpOnly, Secure and SameSite=None, applies to the path /api/trial-grant and lasts 400 days from the latest grant request.
The server keeps a settings backup you save, with the time you saved it, in Cloudflare KV under the first 16 characters of the SHA-256 hash of your license key.
When the plan has an end time, the server deletes the backup 7 days after the plan end time recorded at its latest save or successful license check.
When the key has no end time, such as a courtesy key issued by the operator, the server deletes the backup 365 days after its latest save or successful license check.
For a courtesy key with a device limit, the server adds a row with the full SHA-256 hash of the key and the installation ID to a Cloudflare D1 table named license_devices, and counts the rows of that key to apply the limit. It writes rows only for keys that have a limit. The server code has no step that deletes these rows.
Before it handles a request to /api/trial-grant, a POST to /api/license/verify, a GET or PUT to /api/settings/backup or a POST to /api/e, the server gives the rate limiter of Cloudflare a key made of a name for the route and your IP address, and allows 30 requests per 60 seconds for that key. The server does not write your IP address into its KV, D1 or Analytics Engine records.
The signed plan token that the server returns holds the plan tier, a shortened hash of the key, the installation ID, the issue time and the end time. The server does not store that token, the license key you enter or the answer it reads from Paddle in its KV, D1 or Analytics Engine records.
- Your rights and contact
Questions about this policy, or a request to delete your settings backup sooner, go to support@thefeedtamer.com.