back to work
02

Rewind

Upload your Netflix history, get it handed back as something worth looking at. Your CSV never leaves the browser.

Next.jsReactTypeScriptTailwindTMDB
total plays1,962Oct 6, 2022 → Jul 4, 2026
time watched1,885h≈ 78.6 full days
series / movies85 / 3681,592 episodes · 370 films
active days641of 1,368 on record

Why I built it

Netflix lets you export your entire viewing history as a CSV, and it's the most boring document you'll ever open — thousands of rows of titles and dates. But there's a whole story in there: your binges, your comfort rewatches, the month you clearly stopped sleeping. I wanted to surface it.

What it does

  • Drop in the CSV and get the headline numbers — total plays, real hours watched, active days, longest streak
  • The confessions: biggest binge, longest dry spell, biggest comeback, and how many things you've watched twice
  • The graveyard — shows you abandoned after an episode or two, in grayscale where they belong
  • The rematch — this year against last, both truncated to the same day so the fight is fair
  • A 365-day heatmap, monthly rhythms, and cumulative hours — every chart hand-rolled, no chart library

How it works

Everything happens in the browser: a hand-rolled parser turns Netflix's CSV into clean records, and a single-pass stats engine computes every number from binges to the heatmap. The only thing that ever touches a server is title strings — two small API routes look up posters and real episode runtimes on TMDB, cached for a week (misses included, so failed lookups aren't retried). Without API keys it still works, just on average runtimes.

In the browser
Enrichment

A look inside

timelineThe rhythm
peak year: 2025 · 862 plays
Oct '22 episodes moviesJul '26
the climbHours, compounding
total: 1,885h ≈ 78.6 full days
Oct '22Jul '26
rankedThe obsessions
top 5 by plays
01Supernatural296 plays
02New Amsterdam118 plays
03White Collar82 plays
04Suits72 plays
05Young Sheldon71 plays
the rematch2025 vs 2026

fair fight — both years measured Jan 1 through Jul 4

2025 thru Jul 4
plays486
time~413h · 17.2d
active days146
top: Supernatural · 296 plays
2026
plays308 ▼ 37%
time~290h · 12.1d ▼ 30%
active days105 ▼ 28%
top: Suits · 72 plays
velocitySpeed runs
01The Umbrella Academy36 episodes in 6 days6.0 eps/day
02Better Call Saul62 episodes in 11 days5.6 eps/day
03Friends from College16 episodes in 4 days4.0 eps/day
04White Collar82 episodes in 23 days3.6 eps/day
05Manifest10 episodes in 4 days2.5 eps/day
last 365 daysThe heat
each column is a week · brighter = heavier watching

The hard part

Netflix's export is messier than it looks — episodes, seasons, and films all share one flat “title” column (“Show: Season 2: Episode 4”, colons inside show names, “Limited Series”, “Part 2”), and the date format changes by locale, so the parser detects DD/MM vs MM/DD by scanning for impossible days. Matching titles against TMDB is its own gamble: picking the most-voted search result and sanity-checking runtimes to 5–400 minutes beat everything cleverer I tried.

Status

Live at rewind.mananvyas.com — try it with your own export. Your CSV never leaves the browser; the only thing sent anywhere is title strings for poster and runtime lookups.