Privacy
What this site stores
Reading Open Channel Stats needs no account and sets no cookies — the few things it remembers live in your own browser. Signing in to connect your own channel is a separate, opt-in step. This page names what each part collects, where it is held, and how to remove it.
When you’re just reading
The site is built to read in full with nothing running — no analytics, no cookies, no third-party tracking. These are the things reading deliberately does not gather. Signing in to connect a channel is a separate step, named in the bands below.
No account to read
Reading every page works with no sign-in, no login, and no profile — browsing is anonymous. Signing in to connect your own channel is a separate, opt-in step, named under “When you sign in” below.
No cookies for reading
Reading the site sets no cookies of its own; every page reads the same whether your browser accepts cookies or not. The signed-in connect flow does set a session cookie — named under “When you sign in.”
No third-party tracking
There are no ad pixels, no marketing SDKs, and no cross-site trackers embedded in the pages. Page views are counted anonymously — no cookies, no tracking IDs, no profile — as named under “How page views are counted” below.
No server record of readers
The reading site is a set of static files; no application server holds a record of who read what. Connecting a channel does create an account — see “When you sign in” below.
What your browser keeps
A few visitor-experience features write to your browser’s localStorage. Nothing here is sent to any server. The time-machine view also keeps a short list of the dates you’ve opened in sessionStorage, which clears the moment you close the tab.
- Key
ytpool_themeWhat it holdsWhich color theme you last chose — dark or daylight — so the next page you open renders in that theme straight away, without a flash of the other one first.
- Key
ytpool_motionWhat it holdsYour motion setting — full or reduced animation — so the site honors that choice on every later visit. A small script reads it before the first paint, so the page never starts animating against the setting.
- Key
ytpool_last_visitWhat it holdsA snapshot of the channel's headline numbers from your previous visit — used to compute the “since you last visited” delta line the next time you land on the home page. Channels other than the featured one store theirs under a per-channel variant of this key, so each channel's delta only ever compares against its own numbers.
- Key
ytpool_compare_selectionWhat it holdsYour in-progress comparison picks on the compare tool (up to three video IDs), kept across a refresh or a back-navigation so the selection survives. Each channel stores its picks under a per-channel variant of this key, so one channel's selection never carries into another's.
- Key
ytpool_videos_viewWhat it holdsWhether you last read the video catalog as a grid or a table, so it opens the way you left it.
- Key
ytpool_anomaly_overlayWhat it holdsWhether the anomaly overlay on the charts is switched on, so the toggle stays where you set it. It starts off and is only written once you turn it on.
- Key
ytpool_timespine_entrance_seenWhat it holdsA one-time marker, set after the story page's timeline entrance has played once, so that animation doesn't replay every time you open the page. It records only that the animation has run before — nothing about you.
How page views are counted
The public pages keep one count — how many times each page is read — measured without cookies or tracking IDs. Who hosts the files is named under “Who else handles your data” below.
Cloudflare Web Analytics
Page views are counted with Cloudflare Web Analytics, which is anonymous: no cookies, no tracking IDs, and no browser fingerprinting. As the network serving the files, the CDN may log the requests it handles, per its own privacy policy.
When you sign in
Separate from reading: when a creator signs in with Google to connect a channel, the app collects the sign-in details below to authenticate you, keep you signed in, and read your channel’s data on your behalf. What it collects, where it is held, and how to remove it are named here.
What signing in collects
Through Google sign-in: your Google account name, email address, and profile image. An authentication record — the Google sign-in tokens (access, refresh, and ID tokens) and the scopes you granted. And, for each session, your IP address, your browser’s user-agent string, and a session token.
Cookies the signed-in flow sets
Signing in sets a session cookie that keeps you signed in across pages, plus short-lived encrypted cookies that secure the connect and disconnect steps against cross-site requests. These exist only for the signed-in flow; reading the public site sets none.
Where it is held, and why
Your sign-in record and sessions are kept in a private registry database (Cloudflare D1, encrypted at rest); the YouTube sign-in keys are stored encrypted (AES-256-GCM) in a private object store (Cloudflare R2), reached only over encrypted (HTTPS/TLS) connections and decrypted only to mint the short-lived, read-only access tokens that read your channel’s data. Access is restricted to the service itself, and none of it is ever part of anything published. It is used only to authenticate you, keep you signed in, and read your channel on your behalf — never sold, never used for advertising.
Keeping and deleting it
Your sign-in details and session are kept only while your account is connected, and the sign-in authorization is re-checked at least every 30 days (in practice, daily). Disconnecting a channel deletes that channel’s data and access keys (named in the next band). To delete your account and sign-in identity entirely — name, email, profile image, and sessions — use the Delete account control in your account settings (it disconnects every channel and erases your identity, including the stored sign-in keys), or email hello@openchannelstats.com.
When you connect a channel
Separate from anything about you as a reader: when a creator signs in and connects their own YouTube channel, the app reads that channel’s own data through the YouTube API to build its dashboard. This site uses YouTube API Services. What it reads, how it is held, and how to remove it are named here.
What it reads, and why
Two read-only scopes, each tied to one purpose.
youtube.readonlyreads the channel’s own catalog metadata — channel and video IDs, titles, publish dates, privacy status, and thumbnails — to identify and label each video.yt-analytics.readonlyreads the owner-only analytics — views, watch time, retention, impressions, click rate, traffic sources, and subscriber change — that the charts and projections are built from. Both are read-only: the app can read these stats and cannot upload, edit, or delete anything on the channel.How it is held, and who sees it
The access key YouTube issues is stored encrypted and is never part of anything published. The channel’s data is the authorizing owner’s own: it is never sold and never used for advertising. Open Channel Stats’s use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements. The owner controls who sees the dashboard: it is private — visible only to the signed-in owner — by default, or the owner can choose to make their own channel public, to share its stats and videos with other creators following how the channel is progressing.
Disconnecting, and deletion
Disconnecting in the app revokes the access key and deletes the channel’s stored data within seven days. Revoking access instead from your Google Account permissions has the same effect, with deletion within thirty days. Deleting your data here does not change anything on YouTube itself; to manage or remove videos and data on YouTube, use the YouTube app or site. The site’s use of the API is also governed by the YouTube Terms of Service, the Google Privacy Policy, and this site’s own terms of use.
Who else handles your data
To run the service, your data passes through a small number of infrastructure providers acting only on Open Channel Stats’s behalf. It is never shared with anyone for their own purposes, never sold, and never used for advertising.
The providers that run it
Open Channel Stats runs on Cloudflare — it serves the site, runs the application that handles sign-in, holds the private registry database, and stores your encrypted sign-in keys and your channel’s private data. The daily build that reads your channel’s data from the YouTube API and rebuilds your dashboard runs on GitHub Actions. Both act only as processors on this site’s behalf, under their own security and privacy terms; neither uses your data for its own purposes.
Operational monitoring
To keep the daily build healthy, the system may send an operational alert (for example, when a channel’s authorization has lapsed) to a private monitoring endpoint. Those alerts carry only an internal channel reference and a status — never your name, email, sign-in keys, or any of your channel’s data.
Used only to run this service
What the YouTube API returns and your sign-in details are used only to operate Open Channel Stats for you. They are never sold, never used for advertising, and never handed to any third party for that party’s own purposes — the providers above act solely on this site’s behalf. The one case where a channel’s statistics are combined with other channels’ is the owner-initiated shared pool described below, and even then the published aggregates never name a contributing channel. This site’s handling of Google API data follows the Google API Services User Data Policy, including its Limited Use requirements.
Keep verifying
The rest of the honesty layer
This privacy note sits beside the other trust surfaces. Each names a different part of what the data is, where it came from, and what it can and can't say.