The short version
- Your Netflix data stays in your browser. Your My List, the titles in it, what you have watched, your searches and your custom playlists are never sent to us. There is no TidyWL server for them to be sent to.
- There is no account, no sign-in and no identifier. Nothing marks your copy of the extension as yours. Nothing about your use is sent anywhere. There is no analytics of any kind.
- Three requests leave your browser, and none of them is about you. A public settings file from tidywl.com, IMDb's public ratings file, and Netflix's numeric title ids sent to Wikidata to look up the matching IMDb id. Each one is described in full below.
- Custom playlists and pins use Chrome's own sync storage. That means Google carries them between your signed-in Chrome browsers. We never see them.
- Everything about your account is stored per Netflix profile, and uninstalling the extension removes everything it stored in that browser.
- Nothing is sold, shared or used for advertising. There is nothing to sell and nobody to share it with.
What it reads on Netflix
TidyWL for Netflix works by calling netflix.com's own endpoints with the session you are already signed in with, exactly as the Netflix web app does when you use it by hand. It cannot read anything when you are not signed in to Netflix in that browser, and it never asks you for your Netflix password — it never sees one.
It reads, and only when you ask it to:
- Your My List — each title's id, name, type, year, runtime, maturity rating, genres and box-art address. Read when you press Sync.
- Your watch state — for each film, how far into it you are; for each show, whether Netflix records it as never watched, started or completed. Read as part of the same Sync.
- Which profile is active — its id, name and language, so everything can be filed under the right profile.
- Search results and genre catalogues — only for a search you typed or a genre you opened.
- A title's details on hover — its synopsis, cast, director or creators, genres, runtime and a still image, asked for once per title when you rest the pointer on a card, and kept for the rest of that page's life so a second look costs nothing.
Your search terms go to Netflix, on your own signed-in session, in the same way that typing them into Netflix's own search box would. They do not go anywhere else.
It writes two things to Netflix, and only on your instruction: adding a title to My List, and removing one. Both are the same operations the Netflix web app performs; both are confirmed before a batch runs. Custom playlists are not written to Netflix — see below.
What stays in your browser
Everything above is cached in the extension's own storage so that the dashboard can sort, filter and search hundreds of titles without asking Netflix again. Opening the dashboard makes no network requests at all — reading Netflix is what the Sync button is for. This is a privacy property as much as a speed one, and it is also why the extension does not quietly re-read your account in the background.
Held in chrome.storage.local, which never leaves the machine:
| Key | What is in it |
|---|---|
tidywl_titles_<profile> | Your My List: id, title, type, year, runtime, maturity, genres, box-art address. |
tidywl_last_synced_<profile> | When you last pressed Sync. |
tidywl_show_states_<profile> | Per show: never watched, started, or completed. |
tidywl_first_seen_<profile> | The first date this extension saw each title in your list. Netflix does not record when you added something, so this is the extension's own note, and it only starts from your first Sync. |
tidywl_imdb | The IMDb id and rating found for each Netflix title, so the lookup is not repeated. This one is not filed per profile, because a title's IMDb rating is the same whoever is watching, and the key holds no indication of whose list a title came from. |
tidywl_remote_config | A copy of the public settings file described below. |
tidywl_dashboard_view | Which tab you last had open. |
tidywl_imdb_dump_fetched_at | When IMDb's ratings file was last downloaded, so it is not downloaded again for twelve hours. A timestamp and nothing else. |
tidywl_mobile_interest_clicks | A count of how many times you pressed the Sync to mobile button, which does not exist yet. It is never sent anywhere. It is a note to the developer, readable only by you, in the extension's popup. |
One more thing is held locally and is not a key: the browser's own Cache Storage keeps a copy of
IMDb's ratings file under tidywl-imdb-dump for twelve hours, so that a page of results does not
pull 8.6MB again. It is IMDb's public file, identical for everyone, and it says nothing about you.
Every key that holds something about your account carries your Netflix profile's id. There is deliberately no shared fallback key: an adult profile's list cannot appear under the kids profile on the same account, because there is no place for the two to meet. If the extension cannot tell which profile is active, it stores nothing. The keys without a profile in their name — the settings copy, the tab you last used, the IMDb ratings, that file's download time, and the count of Sync-to-mobile presses — hold nothing that belongs to a profile.
Custom playlists, pins, and Chrome's sync
A custom playlist is a name you typed and a list of Netflix title ids. Nothing else — no titles, no images, no descriptions. Those are looked up again each time the playlist is shown.
Playlists are held in chrome.storage.sync rather than local storage, under
tidywl_playlists_<profile> and tidywl_playlist_<profile>_<id>.
Two smaller things sit there with them, for the same reason — so that they follow you to your other computer:
tidywl_pinned_<profile>, the title ids you have pinned so that a bulk remove cannot take them,
and tidywl_archive_playlist_<profile>, which playlist you chose as the archive — a single id.
That is Chrome's own sync, which means Google replicates them between the Chrome browsers you are
signed in to, under Google's terms and Google's encryption, exactly as it does your bookmarks. It is a
feature — your playlists follow you to your other computer for free — but it is also the only place data about
your use of this extension leaves the machine, so it is worth stating plainly:
- It goes to Google, not to us. We have no copy, no key and no way to read it.
- It is playlist names and numeric title ids. Name them whatever you like — a playlist name is text you wrote, and it travels with the ids. A pin is an id alone.
- You can turn it off in Chrome's own settings, under You and Google → Sync and Google services, by excluding extensions from sync. Playlists and pins then stay on that machine.
Playlists are never written to your Netflix account. Nobody else on the account sees them, and Netflix is not told they exist.
The three requests that leave your browser
These are every outbound request the extension makes other than to netflix.com. There are no others; they are
the only three fetch calls in the extension's background worker. None carries an identifier, a
cookie, an account, or anything that distinguishes your copy from anyone else's.
1. A public settings file, from tidywl.com
The extension fetches https://tidywl.com/config/netflix-config-v1.json, at most once every six
hours and only when you press Sync — never when the dashboard opens. It holds a handful of values, such as the
support links shown in the About dialog, so that small things can be corrected without shipping a new version.
The request carries no identifier and no payload; every install receives the same bytes. Nothing in the file is executed as code, and the extension works normally with the file deleted, unreachable or malformed — every value in it has a built-in default. Like any web request it reaches our host with your IP address, which is not recorded against anything and is not retained.
2. IMDb's public ratings file
To show an IMDb rating on a card, the extension downloads
https://datasets.imdbws.com/title.ratings.tsv.gz — IMDb's own daily public dataset, about 8.6MB,
covering every title IMDb rates. It is downloaded at most once every twelve hours, kept in the browser, and
searched in your browser for the ids you need.
The important consequence: IMDb is never told which titles you have. The extension asks for the whole file, exactly as anyone else does, and does the matching itself. IMDb sees a download, not a request about you.
3. Netflix title ids, to Wikidata
IMDb's file is keyed by IMDb id, and Netflix's titles are not. To bridge the two the extension queries
https://query.wikidata.org/sparql, Wikidata's public query service, with a list of
Netflix's numeric title ids — up to 250 at a time — and asks which IMDb id each corresponds to.
What Wikidata receives is a list of numbers and the extension's name. Not your profile, not your account, not the titles' names, not an identifier of any kind, and nothing that says the list is a personal one rather than any other set of ids. Wikidata's own privacy policy governs what Wikimedia does with the request.
When requests 2 and 3 happen: when you press Sync, for the titles in your list, and when a page of search or genre results is drawn, for the titles on it. Both are answered from the browser's own copy once a title has been looked up, so the same title is never asked about twice. There is no switch to turn ratings off in this version; if that matters to you, say so and it will be added.
What the extension does not do
- No usage report. Nothing counts your syncs, your removals, your searches or your sessions. The TidyWL extension for YouTube does send counts like these; this one has no such code and no endpoint to send them to.
- No identifier. Your install is not given a random id, or any other id.
- No account, no licence, no payment. There is no paid tier in this extension, so there is nothing to check and nobody to check it with.
- No third-party analytics, tag manager, advertising pixel or session recorder. None, anywhere, including on this page.
- No reading of other sites. It runs on netflix.com and nowhere else.
- No video. It does not download, record, decrypt or touch Netflix video in any way.
The permissions it asks for, and why
| Permission | Why |
|---|---|
storage | The cache and the playlists described above. Nothing else uses it. |
https://*.netflix.com/* | The product. The dashboard is injected into Netflix pages and reads your list through Netflix's own endpoints. |
https://datasets.imdbws.com/* | The IMDb ratings file. It has to be a host permission because IMDb's server sends no cross-origin headers, so an ordinary page request for it is refused. |
https://tidywl.com/* | The public settings file. |
Wikidata does not appear in that list because it does not need to: its server permits cross-origin requests, so no host permission is required to reach it. It is described above all the same, because what a request carries matters more than whether Chrome made us ask for it.
How long anything is kept, and how to remove it
- The cache stays until you Sync again, which replaces it, or until you uninstall.
- The IMDb ratings file is replaced when it is more than twelve hours old.
- Playlists stay until you delete them, and pins until you unpin them.
- Uninstalling removes everything the extension stored in that browser. If you want to be certain your playlists are gone from your other signed-in Chrome browsers as well, delete them in the dashboard before you uninstall, so the deletion is what syncs.
We hold nothing, so there is nothing for you to ask us to delete, correct or export — and no request you could make that we could act on. That is a consequence of the design rather than a policy: there is no database.
Children
The extension is not directed at children and collects nothing from anyone. A Netflix account may have a kids profile, and the dashboard works on one; everything it reads there stays on the machine under that profile's own id, exactly as for any other profile.
Changes to this policy
If the extension's behaviour changes, this page changes with it before the new version ships, and the date at the top is updated. Past versions are in this site's public git history.
Who to ask
Email support@tidywl.com, or ask in the Discord. TidyWL is made by one person, Dominic Lam, and is not a company.
TidyWL for Netflix is an independent extension. It is not affiliated with, endorsed by or sponsored by Netflix, IMDb, Wikimedia or Google.