YouTube Takeout stats

Paste a local watch-history.json or watch-history.html export and get viewing totals, top channels, repeated videos, month trends, weekdays, hours, streaks, CSV, and JSON — no login or API key.

Try:
Watch history stats

About this tool

YouTube Takeout Stats turns a Google/YouTube Takeout watch-history export into a local, copy-pasteable viewing report. Paste either watch-history.json or watch-history.html and it summarizes total watches, unique videos, unique channels, top channels, repeated videos, monthly trends, weekday patterns, hourly patterns, busiest day, and longest active streak.

The default output is a text dashboard. Switch to CSV for a single table such as top channels or videos per month, or JSON when you want structured data for another script. JSON exports use UTC timestamps, so set the UTC offset to your local time before bucketing by day and hour; HTML exports already contain local wall-clock timestamps and do not need the offset.

Worked example

Paste this minimal Takeout-style JSON and run the default dashboard:

[{"header":"YouTube","title":"Watched Never Gonna Give You Up","titleUrl":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","subtitles":[{"name":"Rick Astley"}],"time":"2024-01-01T18:10:00Z"},{"header":"YouTube","title":"Watched Never Gonna Give You Up","titleUrl":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","subtitles":[{"name":"Rick Astley"}],"time":"2024-01-02T19:00:00Z"},{"header":"YouTube","title":"Watched Rust in 100 Seconds","titleUrl":"https://www.youtube.com/watch?v=5C_HPTJg5ek","subtitles":[{"name":"Fireship"}],"time":"2024-01-03T09:05:00Z"}]

The result starts with YouTube watch history — 3 videos watched, then lists the range, averages, unique video/channel counts, peak hour, longest streak, top channels, top videos, and month/weekday/hour tables.

Limits and edge cases

FAQ

Does this upload my YouTube history anywhere?

No. The parser runs in WebAssembly inside your browser and the CLI runs locally. The tool does not call YouTube, does not require an account, and does not upload the pasted export.

Which Takeout file should I paste?

Use YouTube and YouTube Music/history/watch-history.json when you exported Takeout as JSON. If your export is HTML, paste the contents of watch-history.html; this tool supports both shapes.

Why are watch minutes and video categories missing?

Google Takeout watch history records the activity item and timestamp, but it does not include the duration watched or the category for each video. Getting those fields would require live YouTube API requests and an API key, which is outside this offline tool's model.

How should I use the UTC offset field?

For JSON exports, timestamps are UTC. Set the offset to your local time zone, for example -5 for UTC-5 or 5.5 for UTC+5:30, so days and peak hours match your local viewing time. HTML exports already contain local text timestamps, so the offset is ignored for them.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool youtube-takeout-stats '[{"header":"YouTube","title":"Watched Never Gonna Give You Up","titleUrl":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","subtitles":[{"name":"Rick Astley"}],"time":"2024-01-01T18:10:00Z"}]'

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/youtube-takeout-stats/?input=%5B%7B%22header%22%3A%22YouTube%22%2C%22title%22%3A%22Watched%20Never%20Gonna%20Give%20You%20Up%22%2C%22titleUrl%22%3A%22https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DdQw4w9WgXcQ%22%2C%22subtitles%22%3A%5B%7B%22name%22%3A%22Rick%20Astley%22%7D%5D%2C%22time%22%3A%222024-01-01T18%3A10%3A00Z%22%7D%5D&output=text&report=overview&top=10&utc_offset=0&include_ads=true&include_music=true&start_date=2024-01-01&end_date=2024-12-31

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.