The open data
Take the data home.
Every public channel on Open Channel Stats publishes its full record as a single SQLite file, refreshed daily. It is the same data the dashboards read, with no parts held back. Each channel’s data page hands over the file and then lists every dataset inside it — described by the file itself — so the shape of the record is readable before anything is downloaded.
What it is
One file per channel
A public channel's whole catalog downloads as a single SQLite file — daily reads, video states, traffic patterns, and every raw row, from the channel's first tracked day to its latest. It opens in any SQLite client, runs in an in-browser SQL playground, or uploads to an AI model that accepts file attachments.
A database that describes itself
The file carries its own documentation. A handful of catalog tables — its overview, its table and column catalogs, its query examples, and a set of utility views — let a reader, or an AI, learn the shape of the file from inside the file. That same catalog is what a channel's data page renders as its list of datasets, so the index on the page and the index in the file are one thing. No external schema sheet to find first.
Built the same way the site is
The file keeps the same posture as the site: observations, not advice; forecasts recorded beside their own track record; the conditions each number was drawn under written down rather than smoothed away. An analyst-mode sibling file strips the stored conclusions, so a model loading it reasons from the raw rows instead of repeating a verdict.
What AI-ready looks like
Paste one prompt, get a plain read.
Attach a channel’s file to an AI model and paste a prompt like this one. It names the tables to begin from and asks for observations, not advice.
Start with the daily read
I've uploaded a YouTube analytics SQLite database from a real channel. Start with the app_dashboard_briefing_daily table, then draw evidence from summary_video, video_daily, and traffic_daily. Summarize the five most useful observations in plain English — what changed, what carried the channel, what stayed quiet, and what is still too small to read. Avoid advice and don't claim causes.
Without an upload
The whole record, as one paste.
Every channel publishes brief.md beside its database: the catalog, every reported day, the source mix and the last recorded edit, as plain Markdown. It fits a free chat tier’s context, and it carries the record’s own conditions with it — a model reading the paste can see what the numbers do and do not support. It opens like this.
# A channel — the record through 2026-09-06
The full daily record of one YouTube channel, published by Open Channel Stats.
This file is the whole fact set as text, so it can be pasted into any chat
model without an upload.
## How to read this file
- YouTube reports two to three days behind. The record runs through 2026-09-06.
There is nothing after that date, and its absence is not a drop to zero.
- Rows dated before a video's publish date are excluded — they are
placeholders, not readings.
- "—" means not reported. "0" means reported as zero. Keep the two apart.What a query looks like
Ask the file a question in SQL.
The file is a plain SQLite database, so any question is a query. This one lists a channel’s ten most-watched videos with each one’s click rate and average retention.
SELECT video_id, total_views, weighted_ctr, avg_retention_pct
FROM summary_video
WHERE snapshot_date = (SELECT MAX(snapshot_date) FROM summary_video)
ORDER BY total_views DESC
LIMIT 10;Every public channel’s data page opens an in-browser SQL playground — no install — where a query like this runs against that channel’s real file. Open the directory to pick one.
Reading it from a script
Every file has a stable address.
There is no key to request and no endpoint to register for. Each public channel publishes ten files under its own handle, and a plain HTTP GET returns them. Start from the manifest, which lists every public channel and its handle:
curl -s https://openchannelstats.com/channels-manifest.json- videos.csvOne row per video: its totals over the days on record.
curl -sO https://openchannelstats.com/@handle/data/videos.csv - video_daily.csvOne row per video per reported day.
curl -sO https://openchannelstats.com/@handle/data/video_daily.csv - traffic_daily.csvOne row per video, day and traffic source.
curl -sO https://openchannelstats.com/@handle/data/traffic_daily.csv - channel_daily.csvOne row per reported day, for the whole channel.
curl -sO https://openchannelstats.com/@handle/data/channel_daily.csv - ytpool-analysis.db.gzThe record with the derived tables, gzipped SQLite.
curl -sO https://openchannelstats.com/@handle/data/ytpool-analysis.db.gz - brief.mdThe whole record as one Markdown page, for pasting into a chat.
curl -sO https://openchannelstats.com/@handle/data/brief.md - README.mdWhat the file is, written by the build that made it.
curl -sO https://openchannelstats.com/@handle/data/README.md - SCHEMA.mdEvery table and column, with its definition.
curl -sO https://openchannelstats.com/@handle/data/SCHEMA.md - channel-stats.jsonThe channel's headline figures, already parsed.
curl -sO https://openchannelstats.com/@handle/data/channel-stats.json - ytpool-public.db.gzThe full record as one gzipped SQLite file.
curl -sO https://openchannelstats.com/@handle/data/ytpool-public.db.gz
Every file has a checksum sidecar at the same address with .sha256 appended, so a download can be verified before it is trusted:
curl -sO https://openchannelstats.com/@handle/data/ytpool-public.db.gz
curl -s https://openchannelstats.com/@handle/data/ytpool-public.db.gz.sha256
shasum -a 256 -c ytpool-public.db.gz.sha256A public channel’s files answer anyone. A private channel’s answer only its owner’s signed-in session, and every other request — a private channel, a channel that never existed, a channel that withdrew — gets the same 404, so the response never says which. Responses are not cached, because a channel that turns private has to go dark at once; each one carries an ETag instead, which a script can send back as If-None-Match to get a 304 and skip the download when nothing has changed.
The terms
What you may do with it.
The tables and prose Open Channel Stats derives — every summary, cohort, forecast, event and catalog table, and the descriptions in _table_catalog and _column_catalog — are released under CC0 1.0: no rights reserved, no permission needed, no attribution required. The figures reproduced from YouTube's APIs — views, impressions, click rate, watch time, average view duration, subscribers, traffic sources — are the channel owner's own analytics, published here with that owner's consent and subject to the YouTube API Services Terms of Service. They are not Open Channel Stats's to place in the public domain, so they are not covered by the CC0 dedication above. Attribution is requested and not required: "Open Channel Stats — openchannelstats.com". Nothing here is a warranty; the record is published as it was measured.
Where to start
The download lives on each channel.
There is no single file for the whole network — each public channel carries its own. The directory and Today’s channel are the way in; a channel that has not connected yet can join.