The short version
- Your YouTube data stays in your browser. Titles, video IDs, channels, your playlists, your watch history, your subscriptions — none of it is sent to us, ever. The one exception is Send to Gemini Notebook, which passes the links you picked to Google when you click the button. That is the whole point of that feature, and it is described below.
- What does leave is a random identifier and some counts. After you delete, unlike or move videos, sync, or build a Lineup, the extension sends tidywl.com a random ID for your install and your lifetime totals: videos deleted, likes removed, videos moved, bulk operations run, Lineups built, Lineups saved as a playlist, the size of your Watch Later, and whether you're on Chrome or Firefox. Never which videos.
- There is no switch in the extension to turn this off on Chrome. Uninstalling stops it. On Firefox the switch is Firefox's own: the Technical and interaction data toggle under the add-on's Permissions and data.
- Records not updated for 12 months are deleted.
- If you buy Pro, your licence key goes to tidywl.com too. It switches Pro on and is checked again at most every 15 minutes while the dashboard is open, so a cancelled subscription or a device you removed elsewhere stops working here quickly. Paddle takes the payment; your card details and your email never reach us.
What stays in your browser
TidyWL works by calling YouTube's own endpoints with the session you are already signed in with, exactly as the YouTube web app does. Everything it fetches — your Watch Later, your Liked videos, any playlist you open, and the per-video details on each card — is cached in your browser's extension storage so the dashboard can search, sort and filter thousands of videos without re-fetching. That cache is namespaced per Google account and per playlist. It is never uploaded anywhere, and it goes away when you uninstall the extension.
The Lineup reads two more things, and they stay here as well. To suggest what to watch next, the Lineup reads your own YouTube watch history and your list of subscribed channels — the same way it reads a playlist, through YouTube's own endpoints with the session you are already signed in with. It also asks YouTube which category each video is in, so it can tell music from the rest. All three are cached in extension storage, per Google account, and re-read about once a day: wl_watch_history_<account>, wl_subscriptions_<account> and wl_video_category_<account>. The whole ranking — which videos are picked, and why — is worked out on your machine. None of it is sent to tidywl.com or anywhere else, and nothing derived from it appears in the usage report below. Uninstalling removes all three.
No sign-in, no account with us, no API key, no OAuth token. TidyWL cannot read your YouTube data when you are not signed in to YouTube in that browser. Pro does not change that: a licence key is not an account. There is no password, no profile, and we never learn your email address.
What TidyWL sends to tidywl.com
Three things, all to this site and nowhere else. The third only happens if you buy Pro.
1. A public configuration file
On each YouTube page load the extension fetches a small public JSON file (/config/api-config-v2.json) and, when you open the dashboard, a notices file (/config/announcements.json). These tell the extension where to find fields in YouTube's responses, so that many YouTube-side changes can be fixed without shipping a new version. The requests carry no identifier and no payload; everyone receives the same bytes. Nothing fetched is executed as code.
2. A usage report
Each install carries a random identifier, generated in your browser when the extension is installed. It is not derived from, linked to, or stored alongside your Google account, your email, or anything else about you, and it is not shown anywhere in the extension. Reinstalling generates a new one.
Whenever one of your lifetime counts changes — after a delete, an unlike, a move, a sync, or a Lineup — the extension sends that identifier and the counts to https://tidywl.com/api/installs. The report is exactly this, and nothing else:
| Field | What it is |
|---|---|
| identifier | The random install ID described above. |
| browser | "chrome" or "firefox". |
| deleted | How many videos you have removed from Watch Later and from playlists, ever, with TidyWL. |
| unliked | How many likes you have removed, ever, with TidyWL. |
| moved | How many videos you have moved to another playlist, ever, with TidyWL. Copies are not counted. |
| operations | How many bulk runs you have completed — one per batch, whatever its size. |
| lineups | How many times you have built a Lineup, ever, with TidyWL. |
| lineups_saved | How many of those you saved as a YouTube playlist. |
| Watch Later size | How many videos were in your Watch Later the last time you synced it. |
Never sent: a video title, a video ID, a channel, a playlist name, a URL, a timestamp of when you did anything, your watch progress, your watch history, your subscriptions, your Google account or email, your licence key, your extension settings, or an IP address the extension has read. The report format has no field that could hold any of these, so none can be sent by mistake.
The two Lineup counts are counts and nothing else. They say how often the feature was used, never what it suggested, what you watched, or which playlist you saved.
Counts include what you did before 1.6.0. The extension has counted deletions locally since version 1.4.1 (that is what powers the "you've cleaned up N videos" note). Those totals are reported on the first YouTube page load after updating, so a long-time user's first report already carries their history. One consequence: likes removed before 1.6.0 were counted as deletions at the time and stay in the deleted total; they cannot be separated out after the fact.
No heartbeat, no install beacon. A report is sent only when a count has changed. An install that has never done any of the things counted above sends nothing at all, and an install that is idle sends nothing while it is idle.
3. A licence check, if you buy Pro
A free install never calls these endpoints. Nothing in this section happens until you enter a key.
Buying Pro gets you a licence key — about twenty random characters, made by our server. It is not derived from your email, your name or anything else about you. It is kept in the extension's synced storage, so it follows your browser profile to your other computers.
The extension sends that key to https://tidywl.com/api/license/… to switch Pro on, and sends it again to check the subscription is still live — at most once every 15 minutes, and only while the dashboard is open. The interval is short on purpose: it is how a cancelled subscription, or a device you removed from another computer, stops working here within minutes instead of a day. If the server cannot be reached at all, Pro keeps working for 14 days and then switches itself off.
Each call carries the key, the activation ID for this device, and — the first time only — the device name you typed. Nothing about your playlists, your videos, your watch history or your Google account goes with it. The same is true of the button that removes a device and the one that opens the billing portal.
Why
To know how heavily TidyWL is actually used — how many installs clean up in one big purge versus a little every week, how large the lists are — which decides what gets built next. Reviews and donations are the only other signal and both come from a self-selected few. The numbers are used for that and for a public total on this site. They are not sold, not shared with anyone, and not used for advertising.
How to stop it
- Chrome (and other Chromium browsers): there is no setting in the extension to turn reporting off. Uninstalling the extension stops it, and the record expires after 12 months of no updates. We chose not to add a switch rather than add one and then design around people flipping it; that trade-off is ours and this page says so plainly.
- Firefox: Firefox shows a Technical and interaction data toggle for this add-on. On a fresh install it is in the install prompt, pre-ticked, and you can change it any time afterwards under
about:addons→ TidyWL → Permissions and data. If you already had TidyWL and updated to 1.6.0, Firefox does not ask and the toggle starts off — so the dashboard asks you once, the first time you open it after the update, and either answer can be changed there later. When it is off, the extension sends no report. - The licence check is different, and there is no switch for it. It is how Pro works: if the key stopped being checked, there would be nothing keeping a cancelled subscription from running forever. Deactivating this device in the About modal removes the key, stops the calls, and puts the extension back to free.
How long it is kept, and where
One record per install, on a server we run at tidywl.com — a Cloudflare Worker with a Cloudflare D1 database. The server keeps the highest value it has seen for each count and the latest Watch Later size. A record that has not been updated for 12 months is deleted; before deletion its counts are added to a single running total so the public number never goes backwards, and after deletion nothing about that install remains.
The server does not keep request logs, does not read or store the IP address your report arrives from, and has no error-tracking service attached. Cloudflare, which fronts the site, rate-limits the endpoint per address at its edge; that happens in Cloudflare's infrastructure under Cloudflare's own policies, and nothing about the address reaches the server or its database.
TidyWL Pro — what the licence record holds
Buying Pro creates rows in that same database. There are two kinds, and this is all of it.
The licence
One row per subscription. It holds a fingerprint of your key (the key itself is stored encrypted, so the checkout page can show it to you again, and never in readable form), which plan you are on, whether the subscription is active, past due, cancelled, expired or refunded, whether it is a trial, how many devices it allows, when the next charge is due, when the paid period ends, and Paddle's own identifiers for the subscription and for you as their customer.
Not your email, not your name, not your address, not one digit of your card. None of those ever reach us. Paddle's customer identifier is the only thing on the row that points at a person, and only Paddle can turn it back into one.
The activation
One row per device you switch Pro on. It holds an activation ID we generate, which licence it belongs to, the device name, when it was activated, and when it last checked in. The name is yours to choose — the dashboard fills the box with something like "Chrome on Mac" so the list is not full of blanks, and you can type anything over it.
A key activates on 3 devices. The About modal shows the whole list — every device, its name, when it was added, when it was last seen — and you can remove any of them from any device. Removing one frees the seat straight away; that device drops back to free at its next check, within 15 minutes.
Deactivating deletes the activation row outright. The licence row stays while the subscription exists, and after you cancel, so the key still works if you come back. Ask us and we will delete that too — see below.
Renewal dates
When Paddle tells our server that a subscription started, renewed, failed or was cancelled, the message carries the date of the next charge and the date the paid period ends. Both are stored on the licence row, and the extension reads them back. That is the only reason the About modal can say "Renews Oct 5, 2026" instead of saying nothing.
Paddle, who takes the money
TidyWL Pro is sold through Paddle, which is the merchant of record — legally the seller, and the one that charges you, files the sales tax and handles refunds. The checkout runs on Paddle's own page, in an ordinary browser tab, not inside the extension.
Your card details, billing address and email go to Paddle, and never to us. What Paddle tells us is: this subscription exists, this is its plan, this is whether it is paid, and here are Paddle's own reference numbers for the subscription and for the customer. What Paddle does with what you gave them is covered by Paddle's privacy policy, not this one.
The page you land on after paying. Paddle sends you back to a page on this site with the transaction number in the address, and the page trades that number for your key. Paddle also puts your email address in the same address bar. The page does not read it, does not store it, and does not pass it on.
Manage subscription. The button in the About modal asks our server for a link into Paddle's customer portal, where you can cancel, change your card or download invoices. The server looks up your Paddle customer identifier, asks Paddle for a signed-in link to that account, and hands it straight back for the browser to open in a new tab. It only happens when you click it. That link is a credential, so it is never written down: not stored, not logged, not kept once the tab is open.
Requests about your data
Because the usage identifier is random and lives only in your browser's extension storage, we cannot tell which usage record is yours, and neither can you without reading the extension's storage directly. There is therefore no lookup, export or delete-on-request for those records; expiry after 12 months of inactivity is the deletion mechanism. If you have a question anyway, write to [email protected].
A Pro licence is different, because the key identifies it. Write to [email protected] from any address and quote your key, and we can tell you exactly what is on your licence row, or delete the row and every activation on it. Deleting it is permanent — the key stops working and cannot be restored — so cancel your subscription with Paddle first. Anything Paddle holds, including your email and your invoices, has to be asked of Paddle.
What you send yourself
Send to Gemini Notebook takes the videos you selected and adds their links as sources to a Gemini Notebook (formerly NotebookLM), using your own Google session. Those links go to Google, because that is the entire point of the feature. It only happens when you click the button, and only after you have granted the browser permission for notebook.google.com that the extension asks for the first time you use it. Google's handling of what arrives there is covered by Google's privacy policy, not this one.
Permissions, and what each one is for
- youtube.com — where the extension works. Reading, reordering and deleting your playlists is done by calling YouTube with your existing session, and so is the Lineup's read of your watch history and your subscriptions.
- tidywl.com — the config and notices files, the usage report, and, for Pro, the licence check. All described above.
- Storage and unlimited storage — the local playlist caches. "Unlimited" only raises the local quota so that syncing every playlist you own does not fail part-way; it sends nothing.
- Active tab — so the toolbar popup can tell whether you are on a playlist page.
- Scripting — used for one thing: adding sources to a Gemini Notebook tab, after you have granted that site.
- Downloads (asked for the first time you download transcripts) — writing transcript files to your Downloads folder. Decline it and the extension offers a Save button instead.
- notebook.google.com (asked the first time you send to Gemini Notebook) — see above. Decline it and the links are copied to your clipboard instead.
Visiting this website
Everything above is about the extension. This section is about tidywl.com itself, which is a separate thing you may use without ever installing anything.
There is no analytics on this site. No Google Analytics, no Plausible, no Fathom, no pixel, no tag manager, no session recorder. We do not know how many people read this page, which pages they came from, or what they clicked. The only usage number we have anywhere is the extension's own counter described above, and the store's own dashboard.
We set no cookies of our own. The site stores exactly one thing in your browser: whether you chose light or dark mode, kept in local storage under theme, written only when you click the toggle and never sent anywhere. Clear your site data and it is gone.
No payment script runs here either. Buying Pro takes you to Paddle's own checkout on Paddle's own domain; this site loads nothing from Paddle. The one page that talks to Paddle at all is the one you land on afterwards, which reads the transaction number out of the address and asks our server for your key — described under Paddle above.
Our host sets one. The site is served through Cloudflare, which sets a short-lived cookie (__cf_bm) to tell browsers apart from bots. It is a security measure, it expires within half an hour, and it is not used to profile you or to advertise.
The demo video does not load until you press play. The thumbnail on the front page is an image on our own server, not an embed. Only when you click it does a YouTube player load, from youtube-nocookie.com, and only then does YouTube see you. If you never press play, no request reaches Google at all.
Fonts are served from here, not from Google. The typeface is stored on our own server, so loading a page on this site does not tell Google you did.
Web servers necessarily see the IP address of whoever asks for a page; Cloudflare's are kept briefly for security and abuse handling, and we do not build them into logs, profiles or reports of our own.
What is not in this policy, on purpose
No analytics library, no crash reporter, no advertising SDK, no third-party script of any kind runs inside the extension. The extension ships unminified — every file in the package is the source — so anyone who wants to check what it sends can read it rather than take this page's word for it.
Changes to this policy
- 2026-09-07 — for version 2.0.0. Three additions, all new. TidyWL Pro: a licence key sent to tidywl.com to switch Pro on and re-checked every 15 minutes, a licence row and one activation row per device on our server, and Paddle as the seller who takes the payment — sections 3. A licence check, TidyWL Pro and Paddle. The Lineup: it reads your watch history and your subscribed channels from YouTube, both of which stay in your browser — What stays in your browser. And the usage report gains two counts, Lineups built and Lineups saved as a playlist. Nothing was removed, and nothing that was local before is sent now. One earlier sentence was also corrected: the summary used to say your YouTube data is never sent "to anyone else", which skipped past Send to Gemini Notebook — a feature this page has always described further down, but which the summary should never have claimed away.
- 2026-09-04 — added Visiting this website. Nothing about the extension changed. The site itself gained no tracking; the section documents what was already true, and two third-party requests were removed rather than disclosed — the typeface now loads from this server instead of Google's, and the demo video loads nothing until you press play.
- 2026-08-29 — first version, published ahead of 1.6.0 and effective from the day it ships. Until this version the extension sent nothing about you or your install; the usage report described above is new.
Material changes will be listed here with a date and announced in the dashboard's What's New. This page is the policy linked from the Chrome Web Store listing and from the Firefox add-on.